Excel - 多列中的查找值

时间:2014-07-09 11:54:41

标签: excel indexing match formula lookup

我有一个包含多列的数据表,我想要搜索 - 最后返回找到的列中的顶行值。这该怎么做?

我的想法是将索引与匹配结合起来,但我对于特定的想法感到很遗憾......

January February March April May June
      1        2     3     4   5    6
      7        8     9    10  11   12
      2        7     1     8   4    5
      9       10    11    12   6    3

E.g。搜索:ID 3 - 应该返回:3月,6月

此致

Nyborg

1 个答案:

答案 0 :(得分:0)

您需要为每列添加VLOOKUP并在构建结果后生成 遵循该计划:

enter image description here

A7 -> =IF(IFERROR(VLOOKUP($A$9;A1:A5;1;);"")="";"";A1)          and autocomplete
D9 -> =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(CONCATENATE(A7;",";B7;",";C7;",";D7;",";E7;",";F7);",,";",");",,";",");",,";",")
D10 -> =IF(RIGHT(D9;1)=",";LEFT(D9;LEN(D9)-1);D9)

D9& amp;的公式D10只能很好地显示结果。

更新版本: 考虑到您同意拥有第7行......您可以简单地使用结果公式:

=INDEX(List;SMALL(IF(List<>"";COLUMN(List)-MIN(COLUMN(List))+1);1))&IFERROR(", " & INDEX(List;SMALL(IF(List<>"";COLUMN(List)-MIN(COLUMN(List))+1);2));"")&IFERROR(", " & INDEX(List;SMALL(IF(List<>"";COLUMN(List)-MIN(COLUMN(List))+1);3));"")

列表这是名称Range of Row 7.该公式应用Ctrl + Shift + Enter。
该公式收集前3个值 如果您想要更多,请为每个第n个值添加:

&IFERROR(", " & INDEX(List;SMALL(IF(List<>"";COLUMN(List)-MIN(COLUMN(List))+1);3));"")

更改最后一个数字(在本例中为3)并放入4,5,6 ...
如果结果可以很多,那么很有意义...... 考虑使用VBA!