我一直试图寻找一个解决方案,但找不到类似的东西。
我目前正在使用查询从一个工作表获取特定值到另一个工作表,但当特定列更改值时,我尝试添加分隔符。现在看起来是这样的:

但我希望它看起来像这样:

知道我该怎么做吗?
现行公式:
=QUERY('FM - Americas'!A:J,"select E,J where (E >= date '2020-10-01') and (E <= date '2020-11-30') Order By J, E",0)谢谢!
发布于 2020-11-22 00:36:27
嗯,这似乎适用于测试数据,如果您的真实数据与您所展示的非常相似,那么它可能会有帮助。
在工作表中的任何地方尝试下列公式。它返回两列。
={ {query(A1:B,"where B='"& index(sort(unique(B$1:B)),1,1) &"'",0)};
IF(counta(unique(B1:B))>1,{{"",""}; {query(A1:B,"where B='"& index(sort(unique(B$1:B)),2,1) &"'",0)}},{"Error 2",""});
IF(counta(unique(B1:B))>2,{{"",""}; {query(A1:B,"where B='"& index(sort(unique(B$1:B)),3,1) &"'",0)}},{"Error 3",""});
IF(counta(unique(B1:B))>3,{{"",""}; {query(A1:B,"where B='"& index(sort(unique(B$1:B)),4,1) &"'",0)}},{"Error 4",""});
IF(counta(unique(B1:B))>4,{{"",""}; {query(A1:B,"where B='"& index(sort(unique(B$1:B)),5,1) &"'",0)}},{"Error 5",""});
IF(counta(unique(B1:B))>5,{{"",""}; {query(A1:B,"where B='"& index(sort(unique(B$1:B)),6,1) &"'",0)}},{"Error 6",""})}这将计算列B中有多少唯一值,然后对每个唯一值进行查询。复杂性在于适当地堆叠结果。注意空行是如何添加的,就在每个IF语句检查之后。这似乎可行,但可能有一个更好或更有效的方法,有人可以建议。
有一个由{.}显示的整体数组,它开始和结束公式。每个IF语句都有一个辅助数组,其中有两个三级数组,一个用于空行,另一个用于QUERY语句结果。如果有什么不清楚的地方请告诉我。
请注意,如果B列中可能有更多可能的区域(或值),则需要扩展公式。只要根据需要重复第二行,并调整其中和最后一行中的数值,它们就会按照顺序进行。更好的错误检查也可能是有用的。

https://stackoverflow.com/questions/64888104
复制相似问题