【问题标题】: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
适用于从行 D1 到 D7 的所有行。
然后您只需在此列中添加一个过滤器:[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)"
)