我需要从选项卡的工作表名称(蓝色)动态构建索引表。
预期结果以黄色显示。
行必须是唯一的,并且第一列中显示的工作表名称。
I tried in this sheet
非公式公式在这里:=INDIRECT(CONCATENATE("{",TEXTJOIN(";",true,ARRAYFORMULA("'" &A6:A32 &"'!" & "A2:B")),"}"))
最佳答案
多个工作表无法使用公式解决方案 + indirect
.
解决此问题的一种选择是使用另一个公式构建公式的动态部分。
这就是我的意思:
公式的动态部分是用这个公式构造的:
={"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<>"")) }
它假定仅针对工作表名称发布 A 列。它产生如下结果:Dynamic part of the formula
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' ''")
最终公式使用这部分。您需要手动执行下一步或为此编写一个简短的脚本。手动流程:转到包含公式生成部分的单元格。按[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") }
关于excel - 使用工作表/excel公式从选项卡中获取唯一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63968718/