我正在尝试在查询函数中使用替代函数,但无法找到正确的语法来做到这一点。我的用例如下。
我有两列姓名和薪金。这些列中的值中有逗号','。我想将这两列导入到新的电子表格中,但用空字符串替换“ 工资”列中的逗号,并保留“ 名称”列中的逗号。在删除逗号以进行数字格式化之后,我还想将value函数应用于“ 薪金”列。
我尝试使用以下代码,但它替换了两列中的逗号。我想要一个仅将替换功能应用于列子集的代码。
代码:
=arrayformula(SUBSTITUTE(QUERY(IMPORTRANGE(Address,"Sheet1!A2:B5"),"Select *"),",",""))
结果:
已转换v / s预期结果
注意:
我几乎有10列要导入,并且应从其中3列中除去昏迷。
答案 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)
注意:
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 *"))
这删除了我在特定列中不需要的所有文本。