如何在 google 电子表格中使用带有查询功能的替代功能

How to use substitute function with query function in google spreadsheet

我正在尝试在查询函数中使用替代函数,但无法找到执行该操作的正确语法。我的用例如下。

我有两列 姓名薪水。这些列中的值包含 comas ','。我想将这两列导入新的电子表格,但将“Salary”列中的逗号替换为空字符串,并保留“Name”列中的逗号.我还想在删除逗号以进行数字格式化后将值函数应用于“Salary”列。

我尝试使用以下代码,但它替换了两列中的逗号。我想要一个只能将替代函数应用于列子集的代码。

代码:

=arrayformula(SUBSTITUTE(QUERY(IMPORTRANGE(Address,"Sheet1!A2:B5"),"Select *"),",",""))

结果:

已转换 v/s 预期结果

:

我有将近 10 列要导入,应该从其中的 3 列中删除逗号。

试试这个。我分别对待列。

=arrayformula(QUERY({Sheet1!A2:A5,SUBSTITUTE(Sheet1!B2:B5,",","")},"Select *"))

我的建议是在您的工作表中使用 2 个公式和更多 space。

公式 #1:获取数据并替换逗号:

=arrayformula(SUBSTITUTE(IMPORTRANGE(Address,"Sheet1!A2:B5"),",",""))

公式 #2:将文本转换为数字:

=arrayformula (range_of_text_to_convert * 1)

备注:

  • 使用 2 个公式将需要额外的 space,但会加快公式的速度(importrange 很慢)
  • 第二个公式使用数学运算(*1),与value公式相同。

根据您的建议,我能够通过单独处理列来实现 objective。下面是代码。

=QUERY({IMPORTRANGE(Address,"Sheet1!A3:A5"),arrayformula(VALUE(SUBSTITUTE(IMPORTRANGE(Address,"Sheet1!B3:B5"),",","")))},"Select * where Col2 is not null")

基本上,每列有两个并排的 IMPORTRANGE 函数。

对具有 10 列的实际数据的相同查询将如下所示。

=QUERY({IMPORTRANGE(Address,"Sheet1!A3:C"),arrayformula(VALUE(SUBSTITUTE(IMPORTRANGE(Address,"Sheet1!D3:H"),",",""))),IMPORTRANGE(Address,"Sheet1!I3:J")},"Select * where Col2 is not null")

我使用了 3 个 IMPORTRANGE 函数,这样我就可以通过删除逗号并将它们更改为数字来格式化列 D 到 H。

多亏了 Ed Nelson,我才弄明白了这一点:

=arrayformula(QUERY({'Accepted Connections'!A:R,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE('Accepted Connections'!A:R,"AIF®",""),"APA",""),"APMA®",""),"ASA",""),"C(k)P®",""),"C(k)PS",""),"CAIA",""),"CBA",""),"CBI",""),"CCIM",""),"","")},"Select *"))

删除了特定列中我不需要的所有文本。