Google 表格查询搜索框 |搜索条件
Google Sheets Query Search Box | Search criteria
所以基本上我的 sheet 中有一个搜索框可以搜索和提取数据。有关参考,请参见此图片:https://i.imgur.com/MVTUCSw.png。所以基本上在单元格 A4 中我放置了我要查找的数据,但我的公式限制我只能查找 1 行中的内容。例如,以单词 MELD 开头的数据,但我希望也能够根据某人的名字查找数据。
我用于搜索框的公式:=QUERY({'Pallets & Locaties'!A2:G;Voorraadverschillen!A2:G}, "SELECT * WHERE Col1 "&Opzoeken!B4&" '"&A4&"'")
我希望能够查找的数据存储在 2 sheet 中:Pallets & Locaties - https://i.imgur.com/qV7h2tz.png and in Voorraadverschillen - https://i.imgur.com/foqLkKa.png.
搜索框只能查找行中的数据,但我只想能够在任何 sheet 中搜索任何类型的存储数据。
这是我的sheet供参考:https://docs.google.com/spreadsheets/d/10wmnxV16JUiD_b_54abkiLPwTqLITWRcUw3gsqvXoBE/edit?usp=sharing
编辑:
清理了公式,使其不再重复。
=IF(A4<>"",(QUERY({'Pallets & Locaties'!A2:G;Voorraadverschillen!A2:G},"Select * WHERE "&textjoin(" OR ", true, arrayformula("Col"&ROW(1:7)&" "&B4&" '"&A4&"'")))),(QUERY({'Pallets & Locaties'!A2:G;Voorraadverschillen!A2:G},"Select * WHERE Col1 IS NOT NULL")))
这会在每一列中搜索数据,只要两列中的数据不相同就不会出现问题。例如,搜索条件“MELD”同时出现在 A 列和 B 列中。如果是这种情况,则只会填充第一个匹配列的结果。
我建议您为查找条件添加更多行,并为要搜索的列添加一列。
Sheet修改:
公式:
=QUERY({'Pallets & Locaties'!A2:G;Voorraadverschillen!A2:G}, "SELECT * WHERE "&TEXTJOIN(" AND ", TRUE, ARRAYFORMULA(IF(ISBLANK(A4:A10), "", A4:A10&" "&B4:B10&" '"&C4:C10&"'"))))
Test Sheet
注:
- 以上公式将允许您使用自己的词和搜索条件在其他列上进行搜索。
- 只有具有
Kolom
值的行才会包含在条件中。如果您只需要 Col1 条件,请确保将其他行留空。
- 这确实使用了
AND
搜索,这意味着所有条件都应为真并与行匹配。如果您只想搜索符合任何条件的所有行,请随意在 TEXTJOIN
函数中使用 OR
。
- 这将只搜索工作表
Pallets & Locaties
和 Voorraadverschillen
。如果需要,请添加必要的工作表。
所以基本上我的 sheet 中有一个搜索框可以搜索和提取数据。有关参考,请参见此图片:https://i.imgur.com/MVTUCSw.png。所以基本上在单元格 A4 中我放置了我要查找的数据,但我的公式限制我只能查找 1 行中的内容。例如,以单词 MELD 开头的数据,但我希望也能够根据某人的名字查找数据。
我用于搜索框的公式:=QUERY({'Pallets & Locaties'!A2:G;Voorraadverschillen!A2:G}, "SELECT * WHERE Col1 "&Opzoeken!B4&" '"&A4&"'")
我希望能够查找的数据存储在 2 sheet 中:Pallets & Locaties - https://i.imgur.com/qV7h2tz.png and in Voorraadverschillen - https://i.imgur.com/foqLkKa.png.
搜索框只能查找行中的数据,但我只想能够在任何 sheet 中搜索任何类型的存储数据。
这是我的sheet供参考:https://docs.google.com/spreadsheets/d/10wmnxV16JUiD_b_54abkiLPwTqLITWRcUw3gsqvXoBE/edit?usp=sharing
编辑:
清理了公式,使其不再重复。
=IF(A4<>"",(QUERY({'Pallets & Locaties'!A2:G;Voorraadverschillen!A2:G},"Select * WHERE "&textjoin(" OR ", true, arrayformula("Col"&ROW(1:7)&" "&B4&" '"&A4&"'")))),(QUERY({'Pallets & Locaties'!A2:G;Voorraadverschillen!A2:G},"Select * WHERE Col1 IS NOT NULL")))
这会在每一列中搜索数据,只要两列中的数据不相同就不会出现问题。例如,搜索条件“MELD”同时出现在 A 列和 B 列中。如果是这种情况,则只会填充第一个匹配列的结果。
我建议您为查找条件添加更多行,并为要搜索的列添加一列。
Sheet修改:
公式:
=QUERY({'Pallets & Locaties'!A2:G;Voorraadverschillen!A2:G}, "SELECT * WHERE "&TEXTJOIN(" AND ", TRUE, ARRAYFORMULA(IF(ISBLANK(A4:A10), "", A4:A10&" "&B4:B10&" '"&C4:C10&"'"))))
Test Sheet
注:
- 以上公式将允许您使用自己的词和搜索条件在其他列上进行搜索。
- 只有具有
Kolom
值的行才会包含在条件中。如果您只需要 Col1 条件,请确保将其他行留空。 - 这确实使用了
AND
搜索,这意味着所有条件都应为真并与行匹配。如果您只想搜索符合任何条件的所有行,请随意在TEXTJOIN
函数中使用OR
。 - 这将只搜索工作表
Pallets & Locaties
和Voorraadverschillen
。如果需要,请添加必要的工作表。