Google sheets Google脚本-RegexExtract/RegexReplace多行内容
上下文 包含多行内容的列,我需要从中删除、替换或提取数据 原创内容。 ● image001.png image002.png 付款参考-程序。7304_18.6T8TIR.pdf ● image005.png image006.png 付款参考-程序。25258_07.2T8TES.pdf。 此订单并不总是包含内容,而且项目的数量可能会有所不同 我需要什么 最终结果也应该在一个单元格中,如 例如 付款参考-程序。7304_18.6T8TIR.pdf 付款参考-程序。25258_07.2T8TES.pdf 它可以包含子弹,而不是一个问题,如果它最终出现在每个最终结果行中 到目前为止我所拥有的 通过使用: =ArrayFormulaREGEXREPLACEF3:F,.?simage.*.png 我得到: 付款参考-程序。7304_18.6T8TIR.pdf ● 付款参考-程序。25258_07.2T8TES.pdf。 如果我尝试替换http。。。在另一列中,基于我使用的第一个regexreplace: =ArrayFormulaREGEXREPLACEG3:G,.?shttp.* 没有什么不同 如果我使用: =ArrayForMulaRegExtractG3:G,?s.*付款。*付款* 我得到了与第一个regexreplace相同的结果,留下了不需要的url 有没有一种方法可以一次从一个单元格到另一个单元格删除所有包含image+URL地址的行,或者至少以尽可能少的操作数删除这些行,或者只提取该单元格中包含付款的所有行,每行提取到另一个单元格,而不是在谷歌表单中从所有行提取到一个单元格 提前谢谢 您希望实现以下转换 从 到 您希望将结果值放在一个单元格中 模式1: 在这个模式中,它假设● image.png至https://mail.google.com/mail/u/0/inbox/XXXXXXXXXXX 放在每个单元格中 样本配方: 结果: 模式2: 在这个模式中,它假设所有来自● image.png至https://mail.google.com/mail/u/0/inbox/XXXXXXXXXXX 被放在一个牢房里 样本配方: 结果: 注: 在两个示例公式中,每个值都是Payment Ref-Proc。使用regextract检索7304_18.6T8TIR.pdf。使用TEXTJOIN将值放在一个单元格中。 参考资料: 补充: 样本配方: 结果: 您希望实现以下转换 从 到 您希望将结果值放在一个单元格中 模式1: 在这个模式中,它假设● image.png至https://mail.google.com/mail/u/0/inbox/XXXXXXXXXXX 放在每个单元格中 样本配方: 结果: 模式2: 在这个模式中,它假设所有来自● image.png至https://mail.google.com/mail/u/0/inbox/XXXXXXXXXXX 被放在一个牢房里 样本配方: 结果: 注: 在两个示例公式中,每个值都是Payment Ref-Proc。使用regextract检索7304_18.6T8TIR.pdf。使用TEXTJOIN将值放在一个单元格中。 参考资料: 补充: 样本配方: 结果:Google sheets Google脚本-RegexExtract/RegexReplace多行内容,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,上下文 包含多行内容的列,我需要从中删除、替换或提取数据 原创内容。 ● image001.png image002.png 付款参考-程序。7304_18.6T8TIR.pdf ● image005.png image006.png 付款参考-程序。25258_07.2T8TES.pdf。 此订单并不总是包含内容,而且项目的数量可能会有所不同 我需要什么 最终结果也应该在一个单元格中,如 例如 付款参考-程序。7304_18.6T8TIR.pdf 付款参考-程序。25258_07.2T8TE
非常完整的答案!谢谢你的帮助。我创建了一个测试电子表格,因为我认为a我做错了什么,b我没有正确地解释自己,c两者都有!:模式2似乎工作得更好,但它加入了所有行的payment ref,并且它应该只显示每行的值。这是@user1128912谢谢你的回复。很抱歉,我无法在您的共享电子表格中假设各种值。从您共享的电子表格中,我又提出了一个示例公式。你能确认一下吗?如果这不是你期望的方向,我再次道歉。@Tanaike再次感谢你的努力和帮助。事实上,就是这样!我的正则表达式选择很差,而你的正则表达式就是这样。此外,修剪是经过深思熟虑的。谢谢你的解释非常完整的答案!谢谢你的帮助。我创建了一个测试电子表格,因为我认为a我做错了什么,b我没有正确地解释自己,c两者都有!:模式2似乎工作得更好,但它加入了所有行的payment ref,并且它应该只显示每行的值。这是@user1128912谢谢你的回复。很抱歉,我无法在您的共享电子表格中假设各种值。从您共享的电子表格中,我又提出了一个示例公式。你能确认一下吗?如果这不是你期望的方向,我再次道歉。@Tanaike再次感谢你的努力和帮助。事实上,就是这样!我的正则表达式选择很差,而你的正则表达式就是这样。此外,修剪是经过深思熟虑的。谢谢你的解释
● image001.png
image002.png
Payment Ref - Proc. 7304_18.6T8TIR.pdf
https://mail.google.com/mail/u/0/#inbox/XXXXXXXXXXX
● image005.png
image006.png
Payment Ref - Proc. 25258_07.2T8TES.pdf.
https://mail.google.com/mail/u/0/#inbox/YYYYYYYYY.
Payment Ref - Proc. 7304_18.6T8TIR.pdf
Payment Ref - Proc. 25258_07.2T8TES.pdf
=ARRAYFORMULA(TEXTJOIN(CHAR(10),TRUE,IFERROR(REGEXEXTRACT(A1:A,"(Payment Ref[\s\w].+\.pdf)"))))
=ARRAYFORMULA(TEXTJOIN(CHAR(10),TRUE,IFERROR(REGEXEXTRACT(A1:A,REGEXREPLACE(A1:A,"(Payment Ref[\s\w].+\.pdf)","($1)")))))
=ARRAYFORMULA(TRIM(REGEXREPLACE(B2:B,"(● | ● )?image[ \S\w]+\n|https.+\n?|\.\n","")))