Google 勾选多个复选框时显示连续行
Google Sheets consecutive rows when multiple checkboxes are ticked
我正在寻求这方面的帮助 sheet。我旁边有一些项目名称和图像。他们是一体的。
每当我勾选项目 sheet 中的第一个复选框时,我希望在 Sheet 中显示项目名称和图像 2. 我已设法使用 A1 中的公式做到这一点图片
=Iferror(VLOOKUP(B1,Items!B4:F15,2,FALSE),"")
对于 B1 中的项目名称公式,我使用了
=iferror(QUERY(Items!B4:F15,"select B where D=True"),"")
.
我的问题是:
当我勾选任何项目的第一个复选框时,该项目通常会与所属图片一起显示在 Sheet2 中。当我勾选同一项目 (x2) 的第二个复选框时,我希望同一项目再次显示在 Sheet2 的第二行中,并再次显示所属图像。如果我勾选第三个复选框,我希望它与所属图像基本上在彼此下方显示三次。
没有脚本可以吗?
https://docs.google.com/spreadsheets/d/1tjyBIMDWbM4AxuQby4vmEUeFgqLbxN1EPk1pGqEX_64/edit?usp=sharing
你可以试试
=sort(filter({
ifna(filter(Items!B4:C,Items!D4:D),{"",""});
ifna(filter(Items!B4:C,Items!E4:E),{"",""});
ifna(filter(Items!B4:C,Items!F4:F),{"",""})},query({
ifna(filter(Items!B4:C,Items!D4:D),{"",""});
ifna(filter(Items!B4:C,Items!E4:E),{"",""});
ifna(filter(Items!B4:C,Items!F4:F),{"",""})},"select Col1")<>""))
更新:更好的方法
=sortn({
ifna(filter(Items!A4:B,Items!D4:D),if({1,1},char(999)));
ifna(filter(Items!A4:B,Items!E4:E),if({1,1},char(999)));
ifna(filter(Items!A4:B,Items!F4:F),if({1,1},char(999)))},
countif(Items!D4:F,true),,2,1)
基本上我们过滤数据三次(每个复选框一次),将所有结果堆叠在一起并按升序排序。 if({1,1},char(999))
用作填充以防不匹配(即未勾选复选框)以防止 ARRAY_LITERAL。 char(999)
的想法是在对范围进行排序时让一个字符进入列表的底部,这样我们就可以用 sortn()
排除它。我不知道 Google 表格在涉及特殊字符时如何排序(如果有人知道请告诉我)但 char(999)
似乎可以完成工作。
我正在寻求这方面的帮助 sheet。我旁边有一些项目名称和图像。他们是一体的。
每当我勾选项目 sheet 中的第一个复选框时,我希望在 Sheet 中显示项目名称和图像 2. 我已设法使用 A1 中的公式做到这一点图片
=Iferror(VLOOKUP(B1,Items!B4:F15,2,FALSE),"")
对于 B1 中的项目名称公式,我使用了
=iferror(QUERY(Items!B4:F15,"select B where D=True"),"")
.
我的问题是:
当我勾选任何项目的第一个复选框时,该项目通常会与所属图片一起显示在 Sheet2 中。当我勾选同一项目 (x2) 的第二个复选框时,我希望同一项目再次显示在 Sheet2 的第二行中,并再次显示所属图像。如果我勾选第三个复选框,我希望它与所属图像基本上在彼此下方显示三次。
没有脚本可以吗?
https://docs.google.com/spreadsheets/d/1tjyBIMDWbM4AxuQby4vmEUeFgqLbxN1EPk1pGqEX_64/edit?usp=sharing
你可以试试
=sort(filter({
ifna(filter(Items!B4:C,Items!D4:D),{"",""});
ifna(filter(Items!B4:C,Items!E4:E),{"",""});
ifna(filter(Items!B4:C,Items!F4:F),{"",""})},query({
ifna(filter(Items!B4:C,Items!D4:D),{"",""});
ifna(filter(Items!B4:C,Items!E4:E),{"",""});
ifna(filter(Items!B4:C,Items!F4:F),{"",""})},"select Col1")<>""))
更新:更好的方法
=sortn({
ifna(filter(Items!A4:B,Items!D4:D),if({1,1},char(999)));
ifna(filter(Items!A4:B,Items!E4:E),if({1,1},char(999)));
ifna(filter(Items!A4:B,Items!F4:F),if({1,1},char(999)))},
countif(Items!D4:F,true),,2,1)
基本上我们过滤数据三次(每个复选框一次),将所有结果堆叠在一起并按升序排序。 if({1,1},char(999))
用作填充以防不匹配(即未勾选复选框)以防止 ARRAY_LITERAL。 char(999)
的想法是在对范围进行排序时让一个字符进入列表的底部,这样我们就可以用 sortn()
排除它。我不知道 Google 表格在涉及特殊字符时如何排序(如果有人知道请告诉我)但 char(999)
似乎可以完成工作。