查询 sheet 和 return 列 Headers 连续匹配两个条件
Query sheet and return Column Headers that match two criteria in a row
我正在尝试 return 基于 TRUE 值和项目名称的列数组 headers。
Link to sheet <- Clicky
Sheet 2:
Sheet 1:(期望的结果)
我想我已经很接近了,但我无法绞尽脑汁在相应的项目中搜索两个 TRUE 值,并为每个 return headers 搜索。我尝试了以下方法,但 return 什么都没有。据我所知。
=IFERROR(QUERY(QUERY(Sheet2!A1:D,"Select * where G='"&A1&"'",1),"Select Col1 where Col2 is not null"))
使用:
=INDEX(IFERROR(SUBSTITUTE(SPLIT(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(Sheet2!A2:D=TRUE, SUBSTITUTE(Sheet2!A1:D1, " ", "♦"), )),,9^9))), " "), "♦", " "))
更新:
=INDEX(IFNA(VLOOKUP(A1:A, {Sheet2!G2:G,
IFERROR(SUBSTITUTE(SPLIT(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(Sheet2!A2:D=TRUE, SUBSTITUTE(Sheet2!A1:D1, " ", "♦"), )),,9^9))), " "), "♦", " "))},
{2,3,4,5}, 0)))
如果有人对另一种方式感兴趣,我确实找到了一种解决方案,该方法使用我更了解的最小函数的首选方法,我只是缺少转置函数。
=TRANSPOSE(QUERY(TRANSPOSE(QUERY(Sheet2!$A:$G,"Select * where G = '"&$A1&"'",1)),"Select Col1 where Col2 = TRUE"))
唯一不幸的是我似乎无法让它向下扩展,但它会 return 在一个单元格中水平显示结果。它也快得多。
要在一行中获得以逗号分隔的结果,您可以使用 JOIN:
=JOIN(", ",TRANSPOSE(QUERY(TRANSPOSE(QUERY(Sheet2!$A:$G,"Select * where G = '"&$A1&"'",1)),"Select Col1 where Col2 = TRUE")))
我正在尝试 return 基于 TRUE 值和项目名称的列数组 headers。
Link to sheet <- Clicky
Sheet 2:
Sheet 1:(期望的结果)
我想我已经很接近了,但我无法绞尽脑汁在相应的项目中搜索两个 TRUE 值,并为每个 return headers 搜索。我尝试了以下方法,但 return 什么都没有。据我所知。
=IFERROR(QUERY(QUERY(Sheet2!A1:D,"Select * where G='"&A1&"'",1),"Select Col1 where Col2 is not null"))
使用:
=INDEX(IFERROR(SUBSTITUTE(SPLIT(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(Sheet2!A2:D=TRUE, SUBSTITUTE(Sheet2!A1:D1, " ", "♦"), )),,9^9))), " "), "♦", " "))
更新:
=INDEX(IFNA(VLOOKUP(A1:A, {Sheet2!G2:G,
IFERROR(SUBSTITUTE(SPLIT(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(Sheet2!A2:D=TRUE, SUBSTITUTE(Sheet2!A1:D1, " ", "♦"), )),,9^9))), " "), "♦", " "))},
{2,3,4,5}, 0)))
如果有人对另一种方式感兴趣,我确实找到了一种解决方案,该方法使用我更了解的最小函数的首选方法,我只是缺少转置函数。
=TRANSPOSE(QUERY(TRANSPOSE(QUERY(Sheet2!$A:$G,"Select * where G = '"&$A1&"'",1)),"Select Col1 where Col2 = TRUE"))
唯一不幸的是我似乎无法让它向下扩展,但它会 return 在一个单元格中水平显示结果。它也快得多。
要在一行中获得以逗号分隔的结果,您可以使用 JOIN:
=JOIN(", ",TRANSPOSE(QUERY(TRANSPOSE(QUERY(Sheet2!$A:$G,"Select * where G = '"&$A1&"'",1)),"Select Col1 where Col2 = TRUE")))