提问人:Omprakash 提问时间:11/17/2023 最后编辑:Joel CoehoornOmprakash 更新时间:11/17/2023 访问量:55
Google 表格 - 查询 - 换行符
Google Sheet - Query - Line Break
问:
我有这个查询公式:
IF(A8="","",IFNA(ARRAYFORMULA(TEXTJOIN(", ",TRUE,QUERY(Sheet6!B5:K,"SELECT F, I, J, K WHERE C = DATE'" & TEXT(A8,"yyyy-mm-dd") & "' AND G = 2",0)))))
它用于返回单个单元格中的值,如下所示:TEXTJOIN
A1, B1, C1, D1, A2, B2, C2, D2, A3, B3, C3, D3
我希望它保留在单个单元格中,但要让单元格显示换行符,如下所示:
A1, B1, C1, D1 A2, B2, C2, D2 A3, B3, C3, D3
A1、A2 和 A3 是名称,包含空格。
我怎样才能调整它以匹配第二个摘录?任何帮助将不胜感激。
答:
0赞
Kevin P.
11/17/2023
#1
尝试使用正则表达式将每 4 个逗号替换为该值。这就是我相信你正在寻找的:CHAR(10)
=REGEXREPLACE(TEXTJOIN(", ", TRUE, QUERY(Sheet6!B5:K, "SELECT F, I, J, K WHERE C = DATE'" & TEXT(A8, "yyyy-mm-dd") & "' AND G = 2", 0)),"((?:[^,]*,){3}[^,]*), ", "$1"&CHAR(10))
- (?:[^,]*,){3}此部分匹配任何后跟逗号的字符序列,正好重复 3 次。
- [^,]* 这与第三个逗号之后的字符匹配,直到下一个逗号。
- 、这与第 4 个逗号匹配。包括一个空格来说明 .
,
- 我们用逗号替换的 $1 保留了逗号后面的内容。
评论
0赞
Omprakash
11/17/2023
你能解释一下公式的最后一部分吗?
0赞
Kevin P.
11/17/2023
是的,我们使用的正则表达式捕获逗号分隔列表中第 3 个字段中的内容。因此,在“field1, field2, field3, field4”字符串中,表达式将捕获“field3”。“$1” & CHAR(10) 是替换字符串。$1 是指正则表达式中第一个捕获组捕获的内容。CHAR(10) 是换行符,用于在捕获的内容后插入换行符。因此,替换有效地在第三个字段后添加了换行符。((?:[^,]*,){3}[^,]*),
0赞
Omprakash
11/17/2023
现在有点难以掌握,但经常使用它应该变得容易。我还将尝试一些变体以更好地理解它。非常感谢。
0赞
Kevin P.
11/17/2023
查看此链接: regexr.com 并输入正则表达式。然后输入一些文本,例如将鼠标悬停在元素上。不完美,但有很大帮助。Here, is , some, text, separated, by, commas
评论
CHAR(10)