Google表格查询排序结果

时间:2020-11-05 17:58:01

标签: google-sheets-formula

我正在编写一个我想排序的查询函数。我已经弄清楚了。我无法解决的是尝试在排序结果之间插入2个空白行。这是可能吗?这是我目前的查询。完美地按书面要求工作。只是希望结果之间有2行的间隔。

谢谢。

=query('Form Responses 1'!A:CM,"Select B,C,D,I,L,AU,AX Where K = '"&Titles!B2&"' OR AW = '"&Titles!B2&"'Order by K,AW",0)

enter image description here

3 个答案:

答案 0 :(得分:0)

编辑: 刚刚意识到我为单列数据创建了答案。 请分享样本表,因为这不是您的情况。

您可以尝试使用此公式,但是您需要使用确切的查询替换此文本“ A4:A8”:

=ArrayFormula(flatten(split(A4:A8 & "♥ ♥ ","♥",0,0)))

请注意,空白单元格中带有“〜”值的列只是为了演示正在发生的事情。

如果您提供了一个带有样本数据的样本表,那会更加容易。

让我知道这是否适合您。如果没有,请提供一个带有样本数据的样本表,让我们知道您还需要什么。

请注意,您不能将任何值放入两个插入的空白单元格行中,否则arrayformula将失败。但是,如果您打算将其结果另存为值,然后粘贴到位,则可以根据需要覆盖空白单元格。

还要注意,FLATTEN是一个未记录的函数,可能会从Sheets中删除。如果这是关键应用,则可以提供替代公式。让我们知道这是否令人担忧。

enter image description here

答案 1 :(得分:0)

我将删除我先前的答案,该答案错误地关注于一栏结果。

这个凌乱的公式似乎可以处理多个列。如果它适合您,我将查看是否可以简化或清理它。如有必要,我还可以提供其正在执行的步骤的详细信息。用您的查询结果当前存在的范围替换此公式中的文本“ A4:C8”。测试完之后,您可以使用实际的查询语句替换文本“ A4:C8”,以便根据需要在一个公式中完成所有操作。

=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(SPLIT(FLATTEN(ARRAYFORMULA(SPLIT(TRANSPOSE(ARRAYFORMULA(QUERY(TRANSPOSE(ARRAYFORMULA(SUBSTITUTE(A4:C8," ","♥"))),,99^99)&"♦~♦~")),"♦",1,0)))," ",1,0),"~",""),"♥"," "))

请告诉我这是否适合您。如果您有任何问题,请共享一个样本表,其中仅包含样本数据,并阐明哪些功能无法按预期工作。

enter image description here

答案 2 :(得分:0)

由于您已经澄清了问题,说您想要两个空白行,仅在查询结果的特定位置添加两个行,因此,我创建了另一个答案。但是您尚未回答关于决定在哪两行插入位置的标准的问题,因此我根据您的数据进行了假设。如果您对于在何处插入空白行有其他条件,则应轻松修改此公式。请参见您样本表中添加的选项卡HelpGK。

在需要查询的位置尝试以下公式:

={query('Data Sheet'!A:J,"Select B,C,D,E,F,H,I Where E=''  and (G = 'ABC' OR J = 'ABC') Order by J,G",0);
  {"","","","","","",""};
  {"","","","","","",""};
  query('Data Sheet'!A:J,"Select B,C,D,E,F,H,I Where E<>'' and (G = 'ABC' OR J = 'ABC') Order by J,G",0)}

请注意,我认为您无法从数据表中获得确切的所需结果。您缺少数据行。但是此公式会在您提供的屏幕截图中产生结果。

enter image description here