2013-08-05 45 views
4

我有一張帶有兩張單獨的工作表的Google電子表格。第一個是名單和數據的大名單,第二個應該是第一張紙上所有數據的排序清單(按姓氏排序)。這裏是我定義的第二片電流方式:如何僅對沒有空白單元格的行進行排序?

=排序(表Sheet1!A2:!L100,爲sheet1 D2:D100,TRUE)

的正常工作在大多數情況下,除了對於一個問題:在工作表1中,第4列(D列)中的某些單元格爲空白。如何更改公式,以便排序忽略D列中具有空白單元格的行?

的公式我試過,但得到了意想不到的結果:

  1. = ARRAYFORMULA(如果(ISTEXT(工作表Sheet1 D2:D100),排序(表Sheet1!A2:!L100,爲sheet1 D2:D100, true),「」))

    它根據需要進行排序,但有一個問題 - 空白單元格末尾沒有推送,但分散在行之間。

  2. = ARRAYFORMULA(排序(過濾器(工作表Sheet1!A2:!L100,ISTEXT(工作表Sheet1 D2:D100)),工作表Sheet1 D2:D100,真))

    雖然過濾器部分做它的工作是完美的,但如果再加上排序,它會給出一個錯誤:不匹配的範圍長度。

+0

因爲我是絕望的答案,我也貼這個查詢在Google Docs論壇上。我希望它不會在這裏廢除任何規則。 – viv227295

+0

[This](http://meta.stackexchange.com/questions/64068/is-cross-posting-a-question-on-multiple-stack-exchange-sites-permitted-if-the-qu)可能會讓你感興趣但TL; DR「不」。不過,我認爲提及多次發佈是有禮貌的(儘管你有),但我認爲*鏈接*可能更有幫助:-) – pnuts

回答

9

要篩選出在列d空白單元格的行,你可以不喜歡#2,但作爲錯誤信息提示,第二個參數需要被過濾以及保證範圍是相同的長度。幸運的是有一個更簡單的方法,那就是使用列的索引,而不是範圍:

=SORT(FILTER(sheet1!A2:L100;ISTEXT(sheet1!D2:D100));4;TRUE)

或者您可以使用查詢功能爲這樣的事情:

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

+0

感謝AdamL。很高興在這裏看到你:) – viv227295

+0

@ viv227295可能對你感興趣的是mehows中的文本[*關於我*](http://stackoverflow.com/users/2140173/mehow)。 – pnuts

3

對於任何人看這個,如果過濾掉真正空白的空白單元格,但是如果單元格包含評估爲空白的公式(「」),那麼接受的答案會很好,ISTEXT將評估爲TRUE並且空白不會被過濾掉。我修改了接受的答案略有我的情況,我在其中有包含,我想篩選出的公式(即評價爲「」)細胞的工作:

=SORT(FILTER(sheet1!A2:L100,sheet1!D2:D100 <> ""),4,TRUE) 
相關問題