【问题标题】:How can I get all non-empty columns and their contents?如何获取所有非空列及其内容?
【发布时间】:2019-09-13 08:07:07
【问题描述】:

我想知道如何在使用工作表一部分的数据时过滤掉空列,而无需指定每个列的名称,因为可以添加更多列。

我找到了this site 并在那里尝试了公式,但似乎有时它会包含该列(意味着它具有非空值),但随后它不包含该值,因此该列看起来是空白但不应该不是。

=ArrayFormula(Query(transpose(Query(TRANSPOSE({Query({'Test Data'!A1:Z1;Query({if('Test Data'!A2:Z<>"",1,0)},"Select "&JOIN(",","Sum(Col"&column('Test Data'!A1:Z1)&")"))},"Offset 1",1);'Test Data'!A2:Z}),"Select * Where Col2>0")),"Select * Offset 1",1))

我目前有这个:

|            |   english   |     math     |   science   |
|:-----------|------------:|:------------:|:-----------:|
| 8:30       | bob,jill    |              |             |
| 9:40       |             |              |             |
| 10:15      |             |              |   mike      |

我想要这样(一行为空也可以):

|            |   english   |   science   |
|:-----------|------------:|:-----------:|
| 8:30       | bob,jill    |             |
| 9:40       |             |             |
| 10:15      |             |   mike      |

任何帮助将不胜感激。

【问题讨论】:

    标签: google-sheets transpose google-sheets-formula array-formulas google-sheets-query


    【解决方案1】:

    这样做的最佳方法是再次重新旋转它:

    =ARRAYFORMULA(QUERY(SPLIT(TRANSPOSE(SPLIT(CONCATENATE(
     IF(A2:A<>"", "♠"&A2:A&"♦"&IF(B2:Z<>"", B2:Z, "♥")&"♦"&B1:Z1, )), "♠")), "♦"), 
     "select Col1,max(Col2) where Col2 <> '♥' group by Col1 pivot Col3"))
    


    如果您想保留所有时间,您将需要:

    =ARRAYFORMULA({QUERY(SPLIT(TRANSPOSE(SPLIT(CONCATENATE(
     IF(A2:A<>"", "♠"&A2:A&"♦"&IF(B2:E<>"", B2:E, "♥")&"♦"&B1:E1, )), "♠")), "♦"), 
     "select Col1,max(Col2) where Col2 <> '♥' group by Col1 pivot Col3 limit 0"); 
     {A2:A, IFERROR(VLOOKUP(A2:A, QUERY(SPLIT(TRANSPOSE(SPLIT(CONCATENATE(
     IF(A2:A<>"", "♠"&A2:A&"♦"&IF(B2:E<>"", B2:E, "♥")&"♦"&B1:E1, )), "♠")), "♦"), 
     "select Col1,max(Col2) where Col2 <> '♥' group by Col1 pivot Col3"), 
     TRANSPOSE(ROW(INDIRECT("A2:A"&COLUMNS(QUERY(SPLIT(TRANSPOSE(SPLIT(CONCATENATE(
     IF(A2:A<>"", "♠"&A2:A&"♦"&IF(B2:E<>"", B2:E, "♥")&"♦"&B1:E1, )), "♠")), "♦"), 
     "select Col1,max(Col2) where Col2 <> '♥' group by Col1 pivot Col3 limit 0"))))), 0))}})
    

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    相关资源
    最近更新 更多