如何在 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 *"))
删除了特定列中我不需要的所有文本。
我正在尝试在查询函数中使用替代函数,但无法找到执行该操作的正确语法。我的用例如下。
我有两列 姓名 和 薪水。这些列中的值包含 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 *"))
删除了特定列中我不需要的所有文本。