Sorting 如何仅对没有空白单元格的行进行排序?

Sorting 如何仅对没有空白单元格的行进行排序?,sorting,filter,google-sheets,array-filter,Sorting,Filter,Google Sheets,Array Filter,我有一个谷歌电子表格,有两张单独的表格。第一个表只是一个大的名称和数据列表,第二个表应该是第一张表上所有数据的排序列表(例如,按姓氏排序)。以下是我定义第二张图纸的当前方式: =排序(sheet1!A2:L100,sheet1!D2:D100,真) 除了一个问题外,它在大多数情况下都可以正常工作:在sheet1中,第4列(D列)中的一些单元格是空白的。如何更改公式,使排序忽略D列中有空白单元格的行 我尝试了这些公式,但得到了不理想的结果: =数组公式(if(istext(sheet1!D2:D

我有一个谷歌电子表格,有两张单独的表格。第一个表只是一个大的名称和数据列表,第二个表应该是第一张表上所有数据的排序列表(例如,按姓氏排序)。以下是我定义第二张图纸的当前方式:

=排序(sheet1!A2:L100,sheet1!D2:D100,真)

除了一个问题外,它在大多数情况下都可以正常工作:在sheet1中,第4列(D列)中的一些单元格是空白的。如何更改公式,使排序忽略D列中有空白单元格的行

我尝试了这些公式,但得到了不理想的结果:

  • =数组公式(if(istext(sheet1!D2:D100),sort(sheet1!A2:L100,sheet1!D2:D100,true),“”)

    它按需要排序,但有一个问题——空白单元格没有被推到最后,而是分散在行之间

  • =数组公式(排序(筛选器(sheet1!A2:L100,istext(sheet1!D2:D100)),sheet1!D2:D100,true))

    虽然过滤器部分的工作做得很好,但当与sort结合使用时,它给出了一个错误:范围长度不匹配


  • 要过滤掉D列中带有空白单元格的行,可以执行类似于#2的操作,但正如错误消息所建议的,还需要过滤第二个参数,以确保范围的长度相同。幸运的是,有一种更简单的方法,即使用列索引而不是范围:

    =SORT(过滤器(sheet1!A2:L100;ISTEXT(sheet1!D2:D100));4;TRUE)

    或者,您可以使用查询功能进行此类操作:


    =QUERY(sheet1!A2:L100;“select*where D!=''order by D”;0)

    对于任何查看此信息的人,如果过滤掉真正为空的空白单元格,则可接受的答案非常有效,但如果单元格包含计算结果为空(“”)的公式,则ISTEXT将计算为真,而空白将不会被过滤掉。我稍微修改了已接受的答案,以适应我的情况,在这种情况下,我的单元格中包含了我想要过滤掉的公式(计算结果为“”):

    =SORT(FILTER(sheet1!A2:L100,sheet1!D2:D100 <> ""),4,TRUE)
    
    =排序(过滤器(sheet1!A2:L100,sheet1!D2:D100“”),4,真)
    
    非常感谢AdamL。很高兴在这里看到你:)
    =SORT(FILTER(sheet1!A2:L100;ISTEXT(sheet1!D2:D100));4;TRUE)
    不起作用,但
    =QUERY(sheet1!A2:L100;“select*where D!=''order by D”;0)
    起作用。但是我需要替换
    当我急切地想要答案时,我也在谷歌文档论坛上发布了这个查询。我希望它不会使这里的任何规则无效。不适用于无限范围。例如,
    =SORT(FILTER($B$2:$B,$B$2:$B“”),1,TRUE)
    ,这里的初始单元格是B2,涵盖了完整的B列。