我在下面的查询中引入了来自不同工作表的多个数组。问题是它们在特定的数组中排序,而不是整个集合。有没有办法根据第一列中的值对它们进行排序?一开始就是一种循环引用。
={unique(sort(filter('Durban KH'!D5:R497,NOT(ISBLANK('Durban KH'!F5:F497)))));unique(sort(filter('Richards Bay KH'!D5:R497,NOT(ISBLANK('Richards Bay KH'!E5:E497)))))}
答案 0 :(得分:1)
是的,您可以将sort
函数应用于由数组表示法{...; ...}
组成的数组。这是一个独立的例子:
=sort({{1,2;3,4}; {0,1;2,3}}, 1, true)
按预期工作。对于从电子表格中获取的数组也是如此,例如
=sort({A2:B9; C2:D9}, 2, false)
答案 1 :(得分:1)
=SORT({unique(sort(filter('Durban KH'!D5:R497,NOT(ISBLANK('Durban KH'!F5:F497)))));unique(sort(filter('Richards Bay KH'!D5:R497,NOT(ISBLANK('Richards Bay KH'!E5:E497)))))})
我相信你的公式没有排序的原因是因为你需要在公式中当前使用的括号外添加排序功能
查看两个附加图像,第一个是公式的精确副本,但指向我自己的工作表中的随机数据,您可以看到两个数组是如何分开和单独排序的:
然后在第二个中我用Sort
重新包装整个公式并得到它:
注意:我还会将您的Not(isblank())
部分替换为单个istext()
:
=SORT({unique(sort(filter('Durban KH'!D5:R497,ISTEXT('Durban KH'!F5:F497))));unique(sort(filter('Richards Bay KH'!D5:R497,ISTEXT('Richards Bay KH'!E5:E497))))})