简体   繁体   中英

Query sheet and return Column Headers that match two criteria in a row

I am trying to return an array of column headers based on TRUE values and Item names.

Link to sheet <- Clicky

Sheet 2:

在此处输入图像描述

Sheet 1: (desired results)

在此处输入图像描述

I think I am close but can't rack my brain to search for both TRUE values within the corresponding Item and return the headers for each. I have tried the following but it returns nothing. It is as far as I have gotten.

=IFERROR(QUERY(QUERY(Sheet2!A1:D,"Select * where G='"&A1&"'",1),"Select Col1 where Col2 is not null"))

use:

=INDEX(IFERROR(SUBSTITUTE(SPLIT(TRIM(FLATTEN(QUERY(TRANSPOSE(
 IF(Sheet2!A2:D=TRUE, SUBSTITUTE(Sheet2!A1:D1, " ", "♦"), )),,9^9))), " "), "♦", " "))

在此处输入图像描述

update:

=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)))

If anyone is interested in another way, I did find a solution utilizing a preferred method of sticking with minimal functions that I have a better understanding of, I was simply missing the transpose function.

=TRANSPOSE(QUERY(TRANSPOSE(QUERY(Sheet2!$A$1:$G,"Select * where G = '"&$A1&"'",1)),"Select Col1 where Col2 = TRUE"))

The only unfortunate part is I cannot seem to get it to expand down but it will return the results horizontally in a cell. It is also MUCH faster.

To get the results separated by comma's in a single row you could use JOIN :

=JOIN(", ",TRANSPOSE(QUERY(TRANSPOSE(QUERY(Sheet2!$A$1:$G,"Select * where G = '"&$A1&"'",1)),"Select Col1 where Col2 = TRUE")))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM