搜索多个列和 return 个顶部单元格值
Search multiple columns and return top cell value
我有一个 INDEX
公式,它将从一行中的第一个单元格中获取一个值,搜索另一个 sheet 的多个列进行匹配,然后 return 相应的 header 找到匹配项时的行值。
问题是我必须手动将此公式复制下来,以便它应用于每一行。但更重要的是,如果我编辑公式或创建新行,我需要确保将编辑应用到每一行。我更希望在列的顶部有一个适用于下面所有单元格的公式。
=INDEX(subTaskCategories!$C:$J,MAX(IF(subTaskCategories!$C:$J=A2,COLUMN(subTaskCategories!$C:$J)-COLUMN(A2)-1)))
什么是 INDEX
的替代方法,它将搜索多个列和 return header 当找到匹配时也可以包含在 ARRAYFORMULA
中?
My sheet 在 subTaskData!C2
粘贴到 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)))
我有一个 INDEX
公式,它将从一行中的第一个单元格中获取一个值,搜索另一个 sheet 的多个列进行匹配,然后 return 相应的 header 找到匹配项时的行值。
问题是我必须手动将此公式复制下来,以便它应用于每一行。但更重要的是,如果我编辑公式或创建新行,我需要确保将编辑应用到每一行。我更希望在列的顶部有一个适用于下面所有单元格的公式。
=INDEX(subTaskCategories!$C:$J,MAX(IF(subTaskCategories!$C:$J=A2,COLUMN(subTaskCategories!$C:$J)-COLUMN(A2)-1)))
什么是 INDEX
的替代方法,它将搜索多个列和 return header 当找到匹配时也可以包含在 ARRAYFORMULA
中?
My sheet 在 subTaskData!C2
粘贴到 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)))