请各路大神指点!!!
excel吧
全部回复
仅看楼主
level 6
cnnoob💯 楼主
问题一:当前排序方式下,检查某车辆某月同一流水号(只需要检查第一个和最后一个流水号的)的起点和终点是不是形成一个循环,举例:第一流水号内,地点A到地点B,地点B到地点C,地点C到地点D,地点D到地点A,就是形成了一个循环。这个地点的多少不确定,有些时候3个,有些时候4个,5个或更多。能否用公式或者VBA实现自行检测?
问题二:当前排序方式下,将某车辆的最后一个流水号中,最后一个装货或者卸货重量标注颜色。
2024年06月06日 01点06分 1
level 6
cnnoob💯 楼主
2024年06月06日 02点06分 2
如图示,各车辆每月都有不同的流水号,各流水号内的地点有时3个,有时4个,有时更多。只是这里粘贴出来的都是4个的。
2024年06月06日 02点06分
有没有办法计算某运单流水号对应的GH这两列的不重复内容有几个?
2024年06月12日 08点06分
level 6
cnnoob💯 楼主
如果问题转换成:相同流水号对应的G列和H列里的数值个数要有2个,则YES,否则NO,会不会有大神知道怎么设公式 ?
2024年06月11日 12点06分 3
level 14
行列号 公式写在哪里 什么都不说清[黑线]猜一下N2=IF(A2=A1,N1,IF(AND(INDEX(G:H,XMATCH(A2,A:A,,{1;-1}),{1;2})=G2),"yes","no"))
2024年06月11日 23点06分 4
已经更新了图片,麻烦大神移步楼下。感谢!!!
2024年06月12日 07点06分
level 6
cnnoob💯 楼主
2024年06月12日 07点06分 5
谢谢4楼大神的提醒,已经更新图片。望各路大神指点。
2024年06月12日 07点06分
level 10
你这表格重新设计一下比较好,不再粗略记录装卸货日期,而改成装卸货的具体日期时间
2024年06月12日 07点06分 6
加上了时间有什么用呀?
2024年06月12日 08点06分
有没有办法计算某运单流水号对应的GH这两列的不重复内容有几个?
2024年06月12日 08点06分
好处多得很。 同单号的只需找出最早和最迟的两条记录,最迟记录的目的地和最早记录的出发地一样,就是你想要的结果
2024年06月13日 07点06分
level 11
'
Option Explicit
'
Sub abc()
 Dim a, i, j, p
 a = [a1].CurrentRegion.Offset(1).Resize(, 8).Value
 ReDim b(1 To UBound(a) - 1, 1 To 2)
 For i = 1 To UBound(a) - 1
  If a(i, 1) <> a(i + 1, 1) Then
   For j = 7 To 8
    Call bsort(a, p + 1, i, j, j, j)
   Next
   For j = p + 1 To i
    If a(j, 7) <> a(j, 8) Then Exit For
   Next
   If j = i + 1 Then b(p + 1, 1) = "yes" Else b(p + 1, 1) = "no"
   p = i
  End If
 Next
 [o2].Resize(UBound(b), 2) = b
End Sub
'
Function bsort(a, first, last, left, right, key)
 Dim i, j, k, t
 For i = first To last - 1
  For j = first To last + first - 1 - i
   If a(j, key) > a(j + 1, key) Then
    For k = left To right
     t = a(j, k): a(j, k) = a(j + 1, k): a(j + 1, k) = t
    Next
   End If
  Next
 Next
End Function
2024年06月12日 08点06分 7
看不明白呀。
2024年06月12日 08点06分
有没有办法计算某运单流水号对应的GH这两列的不重复内容有几个?
2024年06月12日 08点06分
@cnnoob💯 你这个思路是有问题的,如果相同流水号G列有2个A那么它的不重复个数也为2,但它无法形成环 。我这方法是进行G、H列对比出错的概率会小很多 。
2024年06月12日 09点06分
@cnnoob💯 如果相同流水号行数并不多,可以暴力枚举是否为一个环,如果是多个估计处理起来比较费劲 。
2024年06月12日 09点06分
level 6
cnnoob💯 楼主
或者这样行不行?有没有办法计算某运单流水号对应的GH这两列的不重复内容有几个?
2024年06月12日 08点06分 8
level 11
Option Explicit
'
Sub abc()
 Dim a, i, j, k, t, p
 a = [a1].CurrentRegion.Offset(1).Resize(, 8).Value
 ReDim b(1 To UBound(a) - 1, 1 To 2)
 For i = 1 To UBound(a) - 1
  If a(i, 1) <> a(i + 1, 1) Then
   t = a(p + 1, 8)
   For j = 1 To i - p
    For k = p + 1 To i
     If a(k, 7) = t Then t = a(k, 8): a(k, 7) = vbNullString: Exit For
    Next
    If k = i + 1 Then Exit For
   Next
   If j = i - p + 1 Then b(p + 1, 1) = "yes" Else b(p + 1, 1) = "no"
   p = i
  End If
 Next
 [o2].Resize(UBound(b), 2) = b
End Sub
2024年06月12日 17点06分 9
如果结果为yes那当前流水号的起点与终点可以形成一个环 。仅A列有序即可 。
2024年06月12日 17点06分
感谢大神深夜回复。我刚才测试了下,不知道哪里不对劲。因为5月份数据我已经用肉眼看过了的,但是用了这个代码后有些显示no哦。
2024年06月13日 01点06分
@cnnoob💯 抓个你肉眼看到的图上来(带行号列标),或者直接上文件到百度网盘 。
2024年06月13日 03点06分
level 11
2024年06月13日 03点06分 10
而且文字也不能太长是吗?刚才找了一个删掉些字就可以了。
2024年06月13日 07点06分
用9楼代码运行了一下,结果没什么毛病 。
2024年06月13日 03点06分
哦,地址那里是不是不能带括号?
2024年06月13日 06点06分
@cnnoob💯 都带或都不带,不能随机带或不带 。
2024年06月13日 06点06分
level 14
=REPT(IF(AND(COUNTIFS(G:G,FILTER(H:H,A:A=A2),A:A,A2)),"yes","no"),A2<>A1)
2024年06月13日 13点06分 11
FILTER这个函数在2010版本用不上,有代替品吗?
2024年06月15日 09点06分
2024年06月15日 12点06分
@凶恶毛里😈 在你这个公式,如何替代?试了VLOOKUP和XLOOKUP都没有用。
2024年07月16日 07点07分
level 14
2024年06月13日 13点06分 12
level 8
还没搞定?
2024年06月15日 09点06分 13
搞定了。
2024年06月16日 12点06分
level 8
看了10楼的图,才get到 楼主的问题点[阴险]
我智商还得提高
2024年07月16日 13点07分 14
山东大哥可有指教?
2024年07月17日 07点07分
@cnnoob💯 我Excel版本低,只能使用vba解决····
2024年07月17日 08点07分
1