【问题标题】:How to filter rows instead of columns in Google Sheets?如何在 Google 表格中过滤行而不是列?
【发布时间】:2021-02-18 17:16:23
【问题描述】:

我在工作中有一个共享的谷歌表格,看起来像下面的内容。我想过滤掉所有 3 列中有 0 的所有行。我尝试了一个 =filter 函数,但它的问题是它一次只执行 1 行/列。有什么想法吗?

value 1 value 2 value 3
8485    2515    0
121     0       0
36      0       415
0       0       0
0       0       0
0       1551    0

【问题讨论】:

标签: google-apps-script google-sheets filter concatenation google-sheets-formula


【解决方案1】:

尝试:

=QUERY({A:C, TRANSPOSE(QUERY(TRANSPOSE(A:C),,9^9))}, 
 "select Col1,Col2,Col3 where Col4 <> '0 0 0'")

【讨论】:

    【解决方案2】:

    解决方案:

    如果您想使用 Google Apps 脚本执行此操作,那么:

    function myFunction() {
      
    const sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
    const data = sheet1.getRange('A1:C'+sheet1.getLastRow()).getValues();  
    const fdata = data.filter(r=>r[0]!=0 || r[1]!=0 || r[2]!=0);
    sheet1.getRange(1,5,fdata.length,fdata[0].length).setValues(fdata);
    }
    

    我的工作表的输入和输出:

    【讨论】:

      【解决方案3】:

      [已解决]:

      你可以试试这个解决方案:

      在新列中(例如 [Column D])添加一个 Concatenate 公式,如下所示:

      =A1&B1&C1
      

      适用于从行 D1D7 的所有行。

      然后您只需在此列中添加一个过滤器[Column D] 取消选择此值“000 " 三个零。

      【讨论】:

        【解决方案4】:

        这里有一些简单的解决方案:

        =QUERY(
          A:C;
          "WHERE     A IS NOT NULL
                 AND A * A + B * B + C * C <> 0"
        )
        
        =QUERY(
          A:C;
          "WHERE     A IS NOT NULL
                 AND (A <> 0 OR B <> 0 OR C <> 0)"
        )
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-26
          • 2012-09-29
          • 1970-01-01
          • 1970-01-01
          • 2020-10-14
          相关资源
          最近更新 更多