【问题标题】:Google Sheets function to check containing string + evaluation用于检查包含字符串 + 评估的 Google 表格功能
【发布时间】:2020-03-04 13:26:51
【问题描述】:

如果有人能帮我解决这个问题,我将不胜感激。

我在 Google 表格中有一个文件,其中有一列可能包含如下信息:

piktogramm_ghs02.jpg,piktogramm_ghs07.jpg,
piktogramm_ghs08.jpg,
piktogramm_ghs09.jpg

我想检查该字段是否包含“02”,如果是这样,我想用“02”填充另一列。 我得到了这样的工作

=IFS(REGEXMATCH(BC2; "02"); "02"; REGEXMATCH(BC2; "07"); "07"; REGEXMATCH(BC2; "08"); "08") 

但它会停止检查是否找到一个匹配的结果。

有没有办法从这样的所有图片中创建一个逗号分隔的列表?

02,07,08,09

任何帮助将不胜感激:-)

【问题讨论】:

  • 想必你不能只使用 MID 公式?(support.google.com/docs/answer/3094129?hl=en-GB)
  • 我们在谈论多少个数字?我的意思是范围号。是00-99吗?还是只是 02,07,08,09?还有,piktogramm_ghs 的文字总是一样的吗?
  • @Sepp 我的回答对你有帮助吗?
  • @Sepp 你为什么不接受我的回答?

标签: regex google-sheets google-sheets-formula array-formulas textjoin


【解决方案1】:

你可以使用:

=IF(REGEXMATCH(A2; "02"); "02,";"")&IF( REGEXMATCH(A2; "07"); "07,";"")&IF(REGEXMATCH(A2; "08"); "08,";"")

如果你不喜欢最后一个逗号,你可以使用。

=left(IF(REGEXMATCH(A2; "02"); "02,";"")&IF( REGEXMATCH(A2; "07"); "07,")&IF(REGEXMATCH(A2; "08"); "08,";"");len(IF(REGEXMATCH(A2; "02"); "02,";"")&IF( REGEXMATCH(A2; "07"); "07,";"")&IF(REGEXMATCH(A2; "08"); "08,";""))-1)

或者,如果您的所有文件都称为 piktogramm_ghs##.jpg,那么您可以使用 SUBSTITUTE。

=SUBSTITUTE(SUBSTITUTE(A2;"piktogramm_ghs";"");".jpg";"")

如果不同文件名的数量小于不同数字的数量,这也是可能的,只需扩展替换即可。

在 Google 表格中,您还可以使用 Regexreplace。

=REGEXREPLACE(A2;"[^\d,]*";"") 将删除除数字和逗号之外的任何内容,从而导致与您给定的示例相同的结果。

【讨论】:

  • 投票支持 SUBSTITUTE 部分。我也是这么想的。而对于 OP,只是一个建议:考虑将 , 替换为 ;,因为如果列中的值只是 2 张图片 (piktogramm_ghs02.jpg,piktogramm_ghs07.jpg),则输出将是十进制数 (2,07) 不是字符串。使用 @ 987654330@你会得到02;07
【解决方案2】:

尝试:

=ARRAYFORMULA(REGEXREPLACE(SUBSTITUTE(TEXTJOIN(, 1, 
 IFERROR(REGEXEXTRACT(SPLIT(A:A, ","), "[0-9\.]+"))), ".", ","), ",$", ))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多