在Excel 2010中返回值的列位置

我有一个简单的问:我试图返回一个input值的列标题。 下面的例子

Column 1 Column 2 Column 3 1 7 19 3 31 33 4 12 14 

所以如果我input值“31”,我想返回“第2列”

任何人都知道这是如何做到的? 谢谢!

你可以使用这个数组公式

=INDEX(1:1,SMALL(IF(A2:C4=31,COLUMN(A2:C4)),1))

CTRL + SHIFT + ENTER确认

如果在A2:C4中没有发生31,则会出现错误[#NUM!]

如果31在该范围内出现多次,则会从第一次出现(即最左侧的列)

远非理想,但在说A10和复制:

 =IF(COUNTIF(A2:A9,31)=0,"",A1) 

按照你的例子,让我们说头条在第1行,A2:C4的值,D1中的查找值,然后这个公式将做到这一点:(对于多次出现的查找值,它将采取最后一个拟合列)

 =IFERROR(INDIRECT(ADDRESS(1,MAX((A2:C4=D1)*COLUMN(A2:C4)))),"None") 

重要提示 :您必须将其设置为数组公式。 在目标单元格或公式栏中键入或插入此公式后,请不要只按“返回”或离开单元格,而是按CTRL + SHIFT + RETURN 。 如果你做的正确的公式将被包围在公式栏大括号。 ={IFERROR(INDIRECT(ADDRESS(1,MAX((A2:C4=D1)*COLUMN(A2:C4)))),"None")} 。 否则你会得到错误的结果。

对于数组公式也看这里 。