Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3166|回复: 10

[已解决]求高手帮我写个查找函数,事例在附件里

[复制链接]
发表于 2012-4-24 13:09 | 显示全部楼层 |阅读模式
新建 Microsoft Excel 工作表.rar (3.83 KB, 下载次数: 44)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-4-24 13:22 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-4-24 13:24 | 显示全部楼层
wujixin128 发表于 2012-4-24 13:22
没看懂你的意思。

就是根据2012年招标价格在前面进行查找,如2012年招标价格是300,那在前面单元格里查找,显示对应的上面的标题
回复

使用道具 举报

发表于 2012-4-24 14:33 | 显示全部楼层
wujixin128 发表于 2012-4-24 13:22
没看懂你的意思。

楼主的意思是找到当年价格如300的在那几个单位中找出一样价格的,把单位名称写到一起。
回复

使用道具 举报

发表于 2012-4-25 10:10 | 显示全部楼层
应该是这个意思,查找300,在单元格中显示与300匹配的东东(在1个单元格)
回复

使用道具 举报

发表于 2012-4-25 10:24 | 显示全部楼层
LZ,与2012年招标价格"300"所匹配的应该是单位1、单位3、单位4,但你的附件显示好像不对哟
回复

使用道具 举报

发表于 2012-4-25 12:24 | 显示全部楼层    本楼为最佳答案   
看看附件吧,用的自定义函数,工作表函数不适合处理文本合并类的问题。

新建 Microsoft Excel 工作表.rar

8.58 KB, 下载次数: 8

点评

师傅好,辛苦了!  发表于 2012-4-25 12:49
回复

使用道具 举报

发表于 2012-4-25 12:48 | 显示全部楼层
  1. Sub 中标()
  2. Dim array1, i&, j&, array2()
  3. array1 = Range("E2:k" & Cells(Rows.Count, 1).End(3).Row)
  4. ReDim array2(1 To UBound(array1), 1 To 1)
  5. For i = 2 To UBound(array1)
  6.     For j = 1 To UBound(array1, 2) - 1
  7.     If array1(i, 6) <> "" Then
  8.     If array1(i, j) = array1(i, 6) Then
  9.     array2(i - 1, 1) = array2(i - 1, 1) & " " & array1(1, j)
  10.     End If
  11.     End If
  12.     Next j
  13. Next i
  14. Range("L3").Resize(UBound(array1)).ClearContents
  15. Range("L3").Resize(UBound(array1)) = array2
  16. End Sub
复制代码
新建 Microsoft Excel 工作表.zip (7.31 KB, 下载次数: 1)
回复

使用道具 举报

 楼主| 发表于 2012-4-25 20:59 | 显示全部楼层
周义坤 发表于 2012-4-25 12:48

朋友,在L单位格能不能不显示最低价格标题
回复

使用道具 举报

发表于 2012-4-26 08:26 | 显示全部楼层
  1. Sub 中标()
  2. Dim array1, i&, j&, array2()
  3. array1 = Range("E2:k" & Cells(Rows.Count, 1).End(3).Row)
  4. ReDim array2(1 To UBound(array1), 1 To 1)
  5. For i = 2 To UBound(array1)
  6.     For j = 1 To UBound(array1, 2) - 2
  7.     If array1(i, 6) <> "" Then
  8.     If array1(i, j) = array1(i, 6) Then
  9.     array2(i - 1, 1) = array2(i - 1, 1) & " " & array1(1, j)
  10.     End If
  11.     End If
  12.     Next j
  13. Next i
  14. Range("L3").Resize(UBound(array1)).ClearContents
  15. Range("L3").Resize(UBound(array1)) = array2
  16. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-14 23:11 , Processed in 0.470891 second(s), 18 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表