如何在Google表格中巧妙地从多个IF结果创建结果

时间:2019-12-06 09:57:49

标签: regex if-statement google-sheets google-sheets-formula array-formulas

我想将if语句的多个结果组合成一个句子的形式。

代码:

=CONCAT("Fail column", IF($T3="No", " T", "")& IF($U3="No", ", U", "") & IF($W3<7, ", W", "") & IF($X3>3, ", X", "") & IF($AE3="No", ", AE", "") & IF($AF3="No", ", AF", ""))

样本数据: enter image description here

如果第一条语句返回空白,则下一条语句将不会在开头显示逗号。并说全部通过,它们将显示为“是”。

我的预期输出可以是:

  1. T,U,W,X,AE,AF列失败
  2. U,W,X,AE,AF列失败
  3. 失败列T
  4. W列失败,X

2 个答案:

答案 0 :(得分:0)

我在想您可以尝试:

enter image description here

R3中的公式:

=IF(OR(T3="No",U3="No",W3<7,X3>3,AE3="No",AF3="No"),"Fail column: "&TEXTJOIN(", ",TRUE,IF(T3="No","T",""),IF(U3="No","U",""),IF(W3<7,"W",""),IF(X3>3,"X",""),IF(AE3="No","AE",""),IF(AF3="No","AF","")),"Yes")

此处的键是TEXTJOIN而不是CONCAT,以便从串联字符串中排除任何空值。

注意:Excel和Google Spreadsheets是两个不同的应用程序,这些功能并不总是可以互换的。您问题的标题表明您实际上正在使用Excel,但是您的标签包含GS。

答案 1 :(得分:0)

正确的公式应该是:

=ARRAYFORMULA(REGEXREPLACE(IF(
 (T3:T="yes")*(U3:U="yes")*((W3:W<7)*(W3:W<>""))*(X3:X>3)*(AE3:AE="yes")*(AF3:AF="yes"), 
 "yes", "Fail column: "&
 IF(T3:T="no",            "T, ", )&
 IF(U3:U="no",            "U, ", )&
 iF(W3:W>=7,              "W, ", )&
 IF((X3:X<=3)*(X3:X<>""), "X, ", )&
 IF(AE3:AE="no",          "AE, ", )&
 IF(AF3:AF="no",          "AF, ", )), ", $|Fail column: $", ))

0