如何引用Google Sheets QUERY结果的表头实现单单元格TEXTJOIN拼接?
Google Sheets公式解决方案
推荐方案(支持LET函数,大表格性能更优)
仅执行一次QUERY计算,不会重复拉取数据,适合大体量表格场景:
=LET( query_result, QUERY(A9:N,"Select C,D,E,F,G,H,I where B contains """&L3&"""", 1), header_arr, INDEX(query_result, 1, ), value_arr, INDEX(query_result, 2, ), TEXTJOIN(" | ", TRUE, FILTER(header_arr, value_arr=TRUE)) )
query_result存储QUERY返回的2行7列结果,第一行为C-I列的表头,第二行为匹配行的勾选框布尔值INDEX函数分别拆分出表头行、布尔值行FILTER筛选出布尔值为TRUE对应的表头,直接传入TEXTJOIN拼接
兼容旧版本方案(无LET函数时使用)
无需LET函数,只是会重复执行两次QUERY计算:
=TEXTJOIN(" | ", TRUE, FILTER(INDEX(QUERY(A9:N,"Select C,D,E,F,G,H,I where B contains """&L3&"""", 1), 1, ), INDEX(QUERY(A9:N,"Select C,D,E,F,G,H,I where B contains """&L3&"""", 1), 2, )=TRUE))
- 若测试时匹配不到对应行,可检查QUERY语句中包裹L3的引号数量,Google Sheets公式内字符串中的双引号需要用两个双引号转义
内容的提问来源于stack exchange,提问作者The_Lucky42
相关产品推荐
相关产品推荐

