【问题标题】:Search multiple columns and return first row of column (header) if found搜索多列并返回列(标题)的第一行(如果找到)
【发布时间】:2020-01-15 05:26:21
【问题描述】:

如果在列中找到值,我的目标是获取标题(另一张表中的第一行)。

因为VLOOKUPHLOOKUP 有一些问题(例如,搜索条件必须在矩阵的第一列),我必须找到一些替代方案。对于VLOOKUP,我使用INDEXMATCH。现在我正在寻找HLOOKUP 的替代方案。我找到了this post,但无法正常工作。

我有两张纸:

Car        Living        Boat
----------------------------------
Kia        appartment    Jet-Ski
Chevrolet  house         speedboat
Ford       condominium   Yacht
Audi    

搜索栏

原公式

=INDEX(column!A1:C1;;MIN(WENN(column!A1:C5="speedboat";SPALTE(column!A:C))))

转换公式

=INDEX(column!A1:C1,,MIN(IF(column!A1:C5="speedboat",COLUMN(column!A:C))))

目前上述公式的结果是Car。如果我使用评估公式工具,我可以看到,IF 子句没有评估整个矩阵,但我不知道为什么。我做错了什么?

如何获取列标题?

【问题讨论】:

  • 尝试按住ctrl+shift+enter输入,因为这是一个数组公式
  • @JvdV:似乎工作得更好。我可以像往常一样复制/扩展公式,还是必须为每一行按 Ctrl + Shift + Enter
  • 您可以直接拖动它,但在这样做之前您可能需要绝对单元格引用。

标签: excel excel-formula excel-2016


【解决方案1】:

问题是你使用的数组公式需要通过CtrlShiftEnter确认。您只需执行一次,即可拖动公式。

如果您不想通过 CtrlShiftEnter 输入,则公式的替代方法可能是:

=INDEX(column!A1:C1,SUMPRODUCT((column!A2:C5="speedboat")*(COLUMN(A2:C5))))

或者甚至更好:

=INDEX(column!A1:C1,MAX(INDEX((column!A2:C5="speedboat")*(COLUMN(A2:C5)),)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 2013-12-24
    相关资源
    最近更新 更多