【发布时间】:2021-11-17 14:04:04
【问题描述】:
我正在尝试制作这个描述生成器,但我似乎无法让第一部分对其中一个 IF 参数起作用,因为它对其余部分起作用。它只检查逻辑表达式,但不会将单元格中的其余文本正文与 & 连接,就像在其他 IF 参数的情况下一样,我在那里一个接一个地链接。这个example 应该更有意义。
【问题讨论】:
标签: if-statement google-sheets spreadsheet
我正在尝试制作这个描述生成器,但我似乎无法让第一部分对其中一个 IF 参数起作用,因为它对其余部分起作用。它只检查逻辑表达式,但不会将单元格中的其余文本正文与 & 连接,就像在其他 IF 参数的情况下一样,我在那里一个接一个地链接。这个example 应该更有意义。
【问题讨论】:
标签: if-statement google-sheets spreadsheet
尝试:
=INDEX(REGEXREPLACE(SUBSTITUTE(SUBSTITUTE(TRIM(FLATTEN(QUERY(TRANSPOSE(IF(IFERROR(
SPLIT(B1:B, CHAR(10)))="",,REGEXREPLACE({"", SEQUENCE(1, 100)}&". "&IFNA(VLOOKUP(
TRIM(SPLIT(B1:B, CHAR(10))),
{"ck", "click >";
"box", "select box";
"scd", "scroll down >"}, 2, 0),
SPLIT(B1:B, CHAR(10))), " ", CHAR(13)))),,9^9))),
" ", CHAR(10)), CHAR(13), " "), "^\. !?", ))
【讨论】:
第一个 If 语句包含公式的所有其余部分,因此如果正则表达式与“ck”匹配,则满足条件,您会得到“click >”,但不会发生其他任何事情。我认为您可以移动最后一个括号,使其位于“select”之后,如下所示:
=IF(REGEXMATCH(B4, "ck"),"click >",IF(REGEXMATCH(B4, "scd"),"scroll down > ",IF(REGEXMATCH(B4, "!"),"","select "))) & ARRAYFORMULA(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(TEXTJOIN(CHAR(10), 1, IF(REGEXMATCH(""&
SPLIT(B4, CHAR(10)), "^>.*"),
SPLIT(B4, CHAR(10)), TRANSPOSE(MMULT(TRANSPOSE(TRANSPOSE((SEQUENCE(1, COLUMNS(
SPLIT(B4, CHAR(10))))<=SEQUENCE(COLUMNS(
SPLIT(B4, CHAR(10))), 1, 0))*NOT(REGEXMATCH(
SPLIT(B4, CHAR(10)), "^>.+")))), TRANSPOSE(SIGN(NOT(REGEXMATCH(
SPLIT(B4, CHAR(10)), "^>.+"))))))&". "&
SPLIT(B4, CHAR(10)))), "^0. ", ),"scd",""),"ck",""),"!",""))
【讨论】: