查询在谷歌表格中按降序排列的2个标题行之后的导入范围

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

修改导入范围的查询,使其返回第 1+2 行,然后返回第 n 行到第 3 行

例如,如果输入 A 和输入 B 中有数据,则得到输出 A 和输出 B

输入A 输入B 输出A 输出B
年龄标题 A 名称标题 A 年龄标题A 名称标题 A
年龄标题 B 名称标题 B 年龄标题 B 名称标题 B
3 山姆 10 蓝色
4 马克 9 查理
5 四月 8 八月
6 六月 7 六月
7 八月 6 四月
8 查理 5 马克
9 蓝色 4 山姆
10 苹果 3 苹果

该公式本质上应该采用 HeaderArray、ValueArray 的输入 并应用

formula(HeaderArray, ValueArray)
并根据 HeaderArray 和非空白值的“降序”数组按顺序导入有限范围

   =QUERY({IMPORTRANGE("https://docs.google.com/spreadsheets/d/spreadsheet", "spreadsheet!A1:Z2"); QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/spreadsheet", "spreadsheetA3:Z"), "SELECT * WHERE Col1 IS NOT NULL ORDER BY Col1 DESC")}, "SELECT * WHERE Col1 IS NOT NULL")

在这里看到了解决类似问题的方法从谷歌表格中的导入范围翻转行顺序但我觉得它应该更容易并通过修改查询来实现

=ARRAY_CONSTRAIN(QUERY(SORT({
 IMPORTRANGE("1FbovD-T1ickPSat-RFsz_lk-HWZw6Ge-B87A4vhwLZc"; "Plan dnia!A2:M700")\ SEQUENCE(ROWS(
 IMPORTRANGE("1FbovD-T1ickPSat-RFsz_lk-HWZw6Ge-B87A4vhwLZc"; "Plan dnia!A2:M700")))\TRIM(FLATTEN(QUERY(TRANSPOSE(
 IMPORTRANGE("1FbovD-T1ickPSat-RFsz_lk-HWZw6Ge-B87A4vhwLZc"; "Plan dnia!A2:M700"));;9^9)))}; 14; 0); 
 "where Col15 is not null"; 0); 9^9; 13)
google-sheets-formula
1个回答
0
投票

不清楚您的第二列在您的示例中是否排序良好,但根据我的理解,您可以将 SORT 与公式内创建的“辅助列”一起使用,其中包含您范围内的行数序列;由于 FALSE 语句,这会以相反的顺序对其进行排序。然后您只需查询空值和带有标题的 VSTACK 即可:

=LET(headers,A1:B2,values,A3:B,
VSTACK(headers,
QUERY(SORT(values,SEQUENCE(ROWS(values)),FALSE),"WHERE Col1 is not null",)))

根据导入的范围调整 LET 变量的第一行

© www.soinside.com 2019 - 2024. All rights reserved.