EXCEL如何返回某列中等于某个数值的数所对应的信息

问题描述:

EXCEL如何返回某列中等于某个数值的数所对应的信息
问题提得不准确,请看以下描述:
表格中有A列,B列;B列有很多的数值(有很多值相等);如果B列中等于某个数值(X),则返回对应的A列中的值,B列中有多少个X就返回多少个对应的A列的数据,中间用“,”隔开.
如果能够帮助到我,还会继续给分,
一般情况,我所做的表格B列都只有3个不同的值,我就需要统计出B列的不通值对应的A列中的数据,中间需要用“,”隔开.
1个回答 分类: 综合 2014-12-03

问题解答:

我来补答
我也来一段通用的,数据可以增减,代码不影响,楼上代码受限哦
Sub 统计()
Dim arr, arr1()
Dim R&, x&, y&,i&
Set d = CreateObject("scripting.dictionary")
R = Range("A65536").End(xlUp).Row
ReDim arr(1 To R, 1 To 2)
arr = Range("A1:B" & R).Value
For x = 1 To UBound(arr)
If Not d.exists(arr(x, 2)) Then
y = y + 1
d.Add arr(x, 2), ""
ReDim Preserve arr1(1 To y)
For i = 1 To UBound(arr)
If arr(i, 2) = arr(x, 2) Then
arr1(y) = arr1(y) & arr(i, 1) & ","
End If
Next i
arr1(y) = "第" & Left(arr1(y), Len(arr1(y)) - 1) & "的值为" & arr(x, 2)
End If
Next x
Range("C1").Resize(UBound(arr1), 1) = Application.Transpose(arr1)
End Sub
不明白,直接HI我,给你讲解清楚
根据您的文件需求修改代码如下
Sub 统计()
Dim arr, arr1()
Dim R&, x&, y&, i&
Set d = CreateObject("scripting.dictionary")
R = Range("A65536").End(xlUp).Row
ReDim arr(1 To R, 1 To 8)
arr = Range("A2:H" & R).Value
For x = 1 To UBound(arr)
If Not d.exists(arr(x, 8)) Then
d.Add arr(x, 8), ""
For i = 1 To UBound(arr)
If arr(i, 8) = arr(x, 8) Then
t = t & arr(i, 1) & ","
End If
Next i
t1 = t1 & "第" & Left(t, Len(t) - 1) & "的值为" & arr(x, 8) & ";"
t = ""
End If
Next x
Range("L2") = t1
End Su
展开全文阅读