【问题标题】:Get column index from table header in excel从excel表头中获取列索引
【发布时间】:2023-02-22 21:12:55
【问题描述】:

有没有办法从表头中获取列索引?

我有一个要应用过滤器的表,然后我希望使用列标题从过滤后的数据中设置一堆参数。

我在这种情况下测试的公式是:

=LET(setPrjFiltered, FILTER(StaffDetailsTbl,StaffDetailsTbl[Discipline]= "Programming"),
namesPrj, INDEX(setPrjFiltered,, StaffDetailsTbl[Employee]),
namesPrj)

这会导致错误,而如果我使用 INDEX(setPrjFiltered,, 1) 这种形式的索引,就可以了。由于这个特定的公式将包含一组以类似方式设置的参数,并且相同的函数将在工作表中多次使用我希望它使用表列来引用列的索引 - 意思是如果源数据发生变化,我将不必修改函数中的任何索引。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    尝试这个。 MATCH 将在 StaffDetailsTbl 表的标题中查找单词“Employee”并返回它的位置。

    INDEX 的第三个参数是列索引,而不是列本身。我认为这就是您的原始公式返回错误的原因。

    =LET(setPrjFiltered, FILTER(StaffDetailsTbl,StaffDetailsTbl[Discipline]= "Programming"),
    namesPrj, INDEX(setPrjFiltered,, MATCH("Employee", StaffDetailsTbl[#Headers], 0)),
    namesPrj)
    

    【讨论】:

    • 使用 MATCH("Employee",StaffDetailsTbl[#Headers]) 给出索引 4,而 employee 列的索引为 1,知道为什么会发生这种情况吗?
    • @AutomationMonkey 抱歉,忘记了 0 指定只有完全匹配才有效。现在试试,我编辑了公式。
    猜你喜欢
    • 2013-03-30
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多