【问题标题】:Having a problem with IF function argument in Spreadsheet电子表格中的 IF 函数参数有问题
【发布时间】:2021-11-17 14:04:04
【问题描述】:

我正在尝试制作这个描述生成器,但我似乎无法让第一部分对其中一个 IF 参数起作用,因为它对其余部分起作用。它只检查逻辑表达式,但不会将单元格中的其余文本正文与 & 连接,就像在其他 IF 参数的情况下一样,我在那里一个接一个地链接。这个example 应该更有意义。

【问题讨论】:

    标签: if-statement google-sheets spreadsheet


    【解决方案1】:

    尝试:

    =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), " "), "^\. !?", ))
    

    demo sheet

    【讨论】:

      【解决方案2】:

      第一个 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",""),"!",""))
      

      【讨论】:

      • 这很好用,但有趣的是它的工作方式是这样的。如果条件不满足,则继续使用&,但如果满足,则不满足
      猜你喜欢
      • 1970-01-01
      • 2012-10-17
      • 2018-07-12
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多