【问题标题】:Search multiple columns and return top cell value搜索多列并返回顶部单元格值
【发布时间】:2019-05-31 12:57:13
【问题描述】:

我有一个INDEX 公式,它将从一行中的第一个单元格中获取一个值,在另一个工作表的多个列中搜索匹配项,并在找到匹配项时返回相应的标题行值。

问题是我必须手动复制这个公式才能应用到每一行。但更重要的是,如果我编辑公式或创建新行,我需要确保将编辑应用于每一行。我宁愿在列顶部有一个适用于下面所有单元格的公式。

=INDEX(subTaskCategories!$C$1:$J$1,MAX(IF(subTaskCategories!$C$2:$J=A2,COLUMN(subTaskCategories!$C$2:$J)-COLUMN(A2)-1)))

INDEX 的替代方案是什么,它将搜索多个列并在找到也可以包装在 ARRAYFORMULA 中的匹配项时返回标题?

My sheet in subTaskData!C2

【问题讨论】:

  • 原则上您可以使用 Hlookup 或 Vlookup 作为 Index 的替代品,但问题更多在于 Max 也无法使用数组公式,而且您已经在使用 2d 数组。
  • @player0 我编辑了问题以包含指向我的工作表的链接
  • @TomSharpe 我认为我不一定需要MAX。似乎ARRAYFORMULA 无论如何都会自动填充到最后一行。据我了解
  • subTaskData!C2(有问题编辑)

标签: google-sheets array-formulas google-sheets-formula google-sheets-query gs-vlookup


【解决方案1】:

粘贴到B2单元格:

=ARRAYFORMULA(IFERROR(VLOOKUP(REGEXEXTRACT(C2:C, "^~ (.*) ~$"), 
 TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(
 QUERY(TRANSPOSE(IF(INDIRECT("taskCategories!C2:"&ADDRESS(ROWS(taskCategories!A1:A), 
 COLUMNS(taskCategories!A1:AA1), 4))<>"", "♥"&INDIRECT("taskCategories!C2:"&
 ADDRESS(ROWS(taskCategories!A1:A), COLUMNS(taskCategories!A1:AA1), 4))&"♦"&
 INDIRECT("taskCategories!C1:"&ADDRESS(1, COLUMNS(taskCategories!A1:AA1), 4)), ))
 , , 999^99)), , 999^99), "♥")), "♦")), 2, 0)))


粘贴到C2单元格:

=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A, TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(
 QUERY(TRANSPOSE(IF(INDIRECT("subtaskCategories!C2:"&ADDRESS(ROWS(subTaskCategories!A1:A), 
 COLUMNS(subTaskCategories!A1:AA1), 4))<>"", "♥"&INDIRECT("subtaskCategories!C2:"&
 ADDRESS(ROWS(subTaskCategories!A1:A), COLUMNS(subTaskCategories!A1:AA1), 4))&"♦"&
 INDIRECT("subtaskCategories!C1:"&ADDRESS(1, COLUMNS(subTaskCategories!A1:AA1), 4)), ))
 , , 999^99)), , 999^99), "♥")), "♦")), 2, 0)))

【讨论】:

  • 哇!这些公式中发生了很多事情!再次感谢!
猜你喜欢
  • 2022-10-13
  • 1970-01-01
  • 2015-09-11
  • 2022-06-13
  • 1970-01-01
  • 2017-08-25
  • 2013-12-24
  • 2019-03-03
  • 1970-01-01
相关资源
最近更新 更多