Google 表格 - 如何在 QUERY() 函数的 SELECT 结果中显示工作表名称

问题描述 投票:0回答:1

在此公式中,我需要在第一列中显示工作表名称,可以连接到 Col1,也可以是第一列,如下所示。

SELECT SheetName,Col1,Col2,Col3,Col4,Col5

我什至不知道该尝试什么。只是为了测试我尝试使用 CONCATENATE() 进行硬编码,如

SELECT CONCATENATE("Jan",Col1)
,它会抛出错误。试过
SELECT "Jan" & Col1
,没用。

我也尝试过这个,它不会抛出错误,但它不显示单词“Jan”

QUERY({ArrayFormula("Jan "&Jan!A3:E);Feb!A3:E

公式:

=SORT(
    ARRAYFORMULA(IF(A2="[All]",
                    QUERY({Jan!A3:E;Feb!A3:E;Mar!A3:E;Apr!A3:E;May!A3:E;Jun!A3:E;Jul!A3:E;Aug!A3:E;Sep!A3:E;Oct!A3:E;Nov!A3:E;Dec!A3:E}, 
                            "SELECT Col1,Col2,Col3,Col4,Col5 WHERE 1=1 " 
                                    & IF(B2="[All]",""," AND LOWER(Col4)=LOWER('" & B2 & "')") 
                                    & IF(C2="[All]",""," AND LOWER(Col5)=LOWER('" & C2 & "')")),
                    QUERY(INDIRECT("'"&A2&"'!A3:E"), 
                            "SELECT Col1,Col2,Col3,Col4,Col5 WHERE 1=1 " 
                                    & IF(B2="[All]",""," AND LOWER(D)=LOWER('" & B2 & "')") 
                                    & IF(C2="[All]",""," AND LOWER(E)=LOWER('" & C2 & "')")
                            )
                    )
    ),IF(LEN(C4)>0,3,IF(LEN(B5)>0,2,1)),IF(C4="z",FALSE,TRUE)

google-sheets google-sheets-formula array-formulas google-query-language
1个回答
0
投票

试试这个:

=SORT(IF(A2="[All]",
         QUERY({Jan!A3:E,IF(ROW(Jan!A3:E),"Jan");
                Feb!A3:E,IF(ROW(Feb!A3:E),"Feb");
                Mar!A3:E,IF(ROW(Mar!A3:E),"Mar");
                Apr!A3:E,IF(ROW(Apr!A3:E),"Apr");
                May!A3:E,IF(ROW(May!A3:E),"May");
                Jun!A3:E,IF(ROW(Jun!A3:E),"Jun");
                Jul!A3:E,IF(ROW(Jul!A3:E),"Jul");
                Aug!A3:E,IF(ROW(Aug!A3:E),"Aug");
                Sep!A3:E,IF(ROW(Sep!A3:E),"Sep");
                Oct!A3:E,IF(ROW(Oct!A3:E),"Oct");
                Nov!A3:E,IF(ROW(Nov!A3:E),"Nov");
                Dec!A3:E,IF(ROW(Dec!A3:E),"Dec")}, 
                   "SELECT Col6,Col1,Col2,Col3,Col4,Col5 WHERE 1=1 " 
                   & IF(B2="[All]",""," AND LOWER(Col4)=LOWER('" & B2 & "')") 
                   & IF(C2="[All]",""," AND LOWER(Col5)=LOWER('" & C2 & "')")),
          QUERY(INDIRECT(A2&"!A3:E"), 
                   "SELECT Col6,Col1,Col2,Col3,Col4,Col5 WHERE 1=1 " 
                   & IF(B2="[All]",""," AND LOWER(D)=LOWER('" & B2 & "')") 
                   & IF(C2="[All]",""," AND LOWER(E)=LOWER('" & C2 & "')")
                                )
                        )
        ,IF(LEN(C4)>0,3,IF(LEN(B5)>0,2,1)),IF(C4="z",FALSE,TRUE)
)
© www.soinside.com 2019 - 2024. All rights reserved.