如何在Google电子表格中使用替换功能和查询功能

时间:2018-08-27 12:58:26

标签: google-sheets google-query-language

我正在尝试在查询函数中使用替代函数,但无法找到正确的语法来做到这一点。我的用例如下。

我有两列姓名薪金。这些列中的值中有逗号','。我想将这两列导入到新的电子表格中,但用空字符串替换“ 工资”列中的逗号,并保留“ 名称”列中的逗号。在删除逗号以进行数字格式化之后,我还想将value函数应用于“ 薪金”列。

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

代码

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

结果

已转换v / s预期结果

注意

我几乎有10列要导入,并且应从其中3列中除去昏迷。

4 个答案:

答案 0 :(得分:2)

根据您的建议,我可以通过单独处理列来实现目标。下面是代码。

=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列。

答案 1 :(得分:1)

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

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

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

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

=arrayformula (range_of_text_to_convert * 1)

注意:

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

答案 2 :(得分:0)

尝试一下。我分别处理各列。

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

答案 3 :(得分:0)

多亏了埃德·纳尔逊(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 *"))

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