
对于您的帮助,我将不胜感激。谢谢
表格中ABCD120012003343.14220012002562.11320012002171.23420012001232.43520012003345.22......
表格中
A B C D
1 2001200334 3.14
2 2001200256 2.11
3 2001200217 1.23
4 2001200123 2.43
5 2001200334 5.22
.
.
.
C D E
1 2001200334
2 2001200256
3 2001200217
4 2001200123
5 2001200334
.
.
.
如果用公式批量 虽然能得出对应的数据,但是如果有特殊情况,例如上面的1和5,账号相同,但是对应的数据出来后就是
2001200334 3.14
2001200334 3.14 (5.22)
如何解决这个问题,请求帮助,谢谢
以下是您的答案
可以用自定义函数解决
按alt+f11调出VBA窗口,插入一个用户模块,粘贴下面代码:
Function cj(a As Range, b As Range, c As Integer)
For Each d In b
If a.Value = d.Value Then f = f + 1
If f = c Then cj = Cells(d.Row, d.Column + 1): Exit Function
Next
End Function
使用方法:
假设有100行数据,分布在A1:A100,要根据C列内容从A列查找,返回对映的B列内容。
在EXCEL中,用公式 =cj(c1,a1:a100,1)
可得到第一个与编号相同的B列内容
用公式 =cj(c1,a1:a100,2)可得到第二个内容
因为没接触过这个,能否麻烦您截图还有附上一个表格。对于您的帮助,我将不胜感激。谢谢 展开
A B C D
1 2001200334 3.14
2 2001200256 2.11
3 2001200217 1.23
4 2001200123 2.43
5 2001200334 5.22
.
.
.
C D E
1 2001200334
2 2001200256
3 2001200217
4 2001200123
5 2001200334
.
.
.
如果用公式批量 虽然能得出对应的数据,但是如果有特殊情况,例如上面的1和5,账号相同,但是对应的数据出来后就是
2001200334 3.14
2001200334 3.14 (5.22)
如何解决这个问题,请求帮助,谢谢
以下是您的答案
可以用自定义函数解决
按alt+f11调出VBA窗口,插入一个用户模块,粘贴下面代码:
Function cj(a As Range, b As Range, c As Integer)
For Each d In b
If a.Value = d.Value Then f = f + 1
If f = c Then cj = Cells(d.Row, d.Column + 1): Exit Function
Next
End Function
使用方法:
假设有100行数据,分布在A1:A100,要根据C列内容从A列查找,返回对映的B列内容。
在EXCEL中,用公式 =cj(c1,a1:a100,1)
可得到第一个与编号相同的B列内容
用公式 =cj(c1,a1:a100,2)可得到第二个内容
因为没接触过这个,能否麻烦您截图还有附上一个表格。对于您的帮助,我将不胜感激。谢谢 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询