使用sheets/excel公式从选项卡中获取唯一的行
我需要根据选项卡的名称(蓝色)动态构建索引表 预期结果以黄色显示 行和第一列中显示的图纸名称必须唯一使用sheets/excel公式从选项卡中获取唯一的行,excel,google-sheets,excel-formula,google-sheets-formula,Excel,Google Sheets,Excel Formula,Google Sheets Formula,我需要根据选项卡的名称(蓝色)动态构建索引表 预期结果以黄色显示 行和第一列中显示的图纸名称必须唯一 非公式公式在这里:=INDIRECT(CONCATENATE(“{”,TEXTJOIN(“;”),true,ARRAYFORMULA(“'”&A6:A32&“!”&“A2:B”),“}”)我相信一定有一个更优雅的公式来实现所需的输出 但是,这很管用: =query(UNIQUE({"Sheetname","sub_category","cate
非公式公式在这里:
=INDIRECT(CONCATENATE(“{”,TEXTJOIN(“;”),true,ARRAYFORMULA(“'”&A6:A32&“!”&“A2:B”),“}”)
我相信一定有一个更优雅的公式来实现所需的输出
但是,这很管用:
=query(UNIQUE({"Sheetname","sub_category","category_filter","duplicate";{ARRAYFORMULA("Sheet1"&T(SEQUENCE(COUNTA(Sheet1!A2:A))));ARRAYFORMULA("Sheet2"&T(SEQUENCE(COUNTA(Sheet2!A2:A))));
ARRAYFORMULA("Sheet3"&T(SEQUENCE(COUNTA(Sheet3!A2:A))))},{INDIRECT("Sheet1!A2:C"&COUNTA(Sheet1!A1:A));
INDIRECT("Sheet2!A2:C"&COUNTA(Sheet2!A1:A));INDIRECT("Sheet3!A2:C"&COUNTA(Sheet3!A1:A))}}),"Select Col1,Col2,Col3")
对于多张工作表+
间接
不可能使用公式解决方案
解决此问题的一个选项是使用另一个公式构建公式的动态部分
我的意思是:
公式的动态部分由以下公式构成:
={"Dynamic part of the formula" ; JOIN(";"&char(10),FILTER("QUERY({"&A2:A&"!A2:C},""select '"&A2:A&"', Col1, Col2, Col3 where Col1 != '' label '"&A2:A&"' ''"")",A2:A<>"")) }
最后的公式使用了这一部分。您需要手动执行下一步,或者为此编写一个简短的脚本。手动过程:
转到包含公式生成部分的单元格。点击[F2]输入,选择并复制全部。转至最终配方并更换此零件:
={"Sheetname","sub_category","category_filter"; QUERY(UNIQUE({
QUERY({Sheet1!A2:C},"select 'Sheet1', Col1, Col2, Col3 where Col1 != '' label 'Sheet1' ''");
QUERY({Sheet2!A2:C},"select 'Sheet2', Col1, Col2, Col3 where Col1 != '' label 'Sheet2' ''");
QUERY({Sheet3!A2:C},"select 'Sheet3', Col1, Col2, Col3 where Col1 != '' label 'Sheet3' ''");
QUERY({Sheet4!A2:C},"select 'Sheet4', Col1, Col2, Col3 where Col1 != '' label 'Sheet4' ''")
}),"select Col1, Col2, Col3") }
谢谢,马里奥,真的很感激。但是这是一个开销,因为我希望公式是动态的,如果我添加新的蓝色单元格,那么结果表必须自动更新。这需要手动更改公式。我将如何使其动态?伟大的解决方案Max!我真的想达到同样的效果,但我没能:)我投了赞成票。
={"Sheetname","sub_category","category_filter"; QUERY(UNIQUE({
QUERY({Sheet1!A2:C},"select 'Sheet1', Col1, Col2, Col3 where Col1 != '' label 'Sheet1' ''");
QUERY({Sheet2!A2:C},"select 'Sheet2', Col1, Col2, Col3 where Col1 != '' label 'Sheet2' ''");
QUERY({Sheet3!A2:C},"select 'Sheet3', Col1, Col2, Col3 where Col1 != '' label 'Sheet3' ''");
QUERY({Sheet4!A2:C},"select 'Sheet4', Col1, Col2, Col3 where Col1 != '' label 'Sheet4' ''")
}),"select Col1, Col2, Col3") }