如何在包含星号的文本单元格上运行Google表格查询

问题描述

当我在Google表格中使用此查询

=QUERY('Kontoutdrag länsförsäkringar'!$A$3:$F$1000186;"SELECT sum(F) WHERE B >= date'" & TEXT(DATEVALUE(J$4);"yyyy-mm-dd") & "' AND B <= date '"& TEXT(DATEVALUE(J$5);"yyyy-mm-dd") &"' AND D matches '" & JOIN("|";$T10:$CZ10) &"' AND D != '' label sum(F)'' ")

它将跳过文本中某个位置包含星号的所有单元格

*

此匹配项中存在错误

AND D matches '" & JOIN("|";$T10:$CZ10)

如果D列的文本(以及联接范围中相应的相同单元格)包含星号,则它将不匹配。

有没有一种方法可以避免这种情况,以便我可以在文本中包含带有星号的单元格?

此值有效

K Batteriexp

该值不会被查询获取

K*Batteriexp

解决方法

如果唯一的问题是星号,则可以使用正则表达式对其进行转义:

AND D matches '" & ARRAYFORMULA(JOIN("|";REGEXREPLACE($T10:$CZ10,"\*","\\*")))

K*Batteriexp //Means 'K' repeated 0 or more times

成为

K\*Batteriexp //means a literal *