求助统计人次
excel吧
全部回复
仅看楼主
level 6
blhying 楼主
怎么统计高铁多少人次航班多少人次?
2021年10月10日 03点10分 1
level 11
'A列去重的吧
Option Explicit
Sub abc()
 Dim a, i, j, d(3)
 a = Range("a5:c" & [a5].End(xlDown).Row).Value
 For j = 2 To 3
  Set d(j) = CreateObject("scripting.dictionary")
  For i = 1 To UBound(a)
   If Len(a(i, j)) Then d(j)(a(i, 1)) = 1
  Next
 Next
 a(1, 1) = "高铁": a(1, 2) = d(2).Count
 a(2, 1) = "航班": a(2, 2) = d(3).Count
 [e5].Resize(2, 2) = a
End Sub
2021年10月10日 04点10分 2
感谢大哥,不过,这个不对,现在需要的是统计张三和李四两个人坐了几次高铁,=SUMPRODUCT((A5:A14="张三")+(A5:A14="李四"))*(B5:B14<>"")类似这样的公式!
2021年10月11日 08点10分
level 13
人次,需要去重吗
2021年10月10日 05点10分 3
是的,统计张三,李四,王五,赵二坐了几次高铁,几次飞机
2021年10月11日 08点10分
@blhying countif或者match函数都可以
2021年10月11日 08点10分
@qianboccp countifs这个不可以一次统计多少,只能一个一个统计,你说的match这个没用过,不会用!
2021年10月11日 12点10分
@blhying 我说可以就可以,你确定你了解countifs?countifs专业去重统计。
2021年10月11日 12点10分
level 11
透视
2021年10月11日 13点10分 4
level 4
2021年10月12日 06点10分 5
十分感谢,可以直统计高铁次数和航班次数吗?不是一个人几次,是一共几次
2021年10月12日 16点10分
level 2
张三高铁次数=COUNTIFS($A$1:$A$10,$D2,B$1:B$10,E$1)
张三航班次数=COUNTIFS($A$1:$A$10,$D2,C$1:C$10,F$1)
其他同学类似!
高铁累计次数=COUNTIFS($B$1:$B$10,"高铁")
航班累计次数=COUNTIFS($C$1:$C$10,"航班")
2021年10月13日 04点10分 6
十分感谢你的回答,不过这样子的话还是让每个人统计一下,然后再计算结果。我想要的是直接出结果。
2021年10月13日 12点10分
@blhying 你有多少种需求,就应该有多少组公式,既要分别统计每个乘客的出行方式,又要统计不同出行方式的出行人数,这不可能通过一个公式完成,除非加辅助列,如果单独统计出行方式的次数,就一个公式就好咯
2021年10月15日 01点10分
@暖伊o 是的,需要统计共多少次,报表是阅读型的,所以,加辅助列的话,就有点影响观看了!
2021年10月15日 10点10分
level 11
'好象看懂了,交通工具可以错位。娱乐一下
Option Explicit
Sub abc()
  Dim i, j, m, n, a, d(1)
  a = [a1].CurrentRegion.Resize(, 5).Value
  ReDim b(UBound(a), UBound(a, 2) + 2)
  For i = 0 To UBound(d)
  Set d(i) = CreateObject("scripting.dictionary")
  Next
  For i = 1 To UBound(a)
  If Not d(0).exists(a(i, 1)) Then
   m = m + 1: d(0)(a(i, 1)) = m: b(m, 0) = a(i, 1)
  End If
  For j = 2 To UBound(a, 2)
   If Len(a(i, j)) Then
    If Not d(1).exists(a(i, j)) Then
     n = n + 1: d(1)(a(i, j)) = n: b(0, n) = a(i, j)
    End If
    b(d(0)(a(i, 1)), d(1)(a(i, j))) = b(d(0)(a(i, 1)), d(1)(a(i, j))) + 1
   End If
  Next
  Next
  [a1].Offset(, UBound(a, 2) + 1).Resize(m + 1, n + 1) = b
End Sub
2021年10月14日 12点10分 7
首先,谢谢老大的回答,其次,大哥,你看懂了,[委屈]问题是,你写的,我看不懂啊!
2021年10月15日 10点10分
@qianboccp 不管怎么样,谢了!问题解决了!
2021年10月15日 10点10分
@blhying 不用看懂,会复制粘贴运行就可以了[阴险]
2021年10月15日 16点10分
level 7
[哈哈]
2021年10月16日 02点10分 8
1