真正的问题是I15 为空。使用“评估公式”工具运行,您应该会看到它,但是如果您将代码拆分并使用缩进/换行等格式化:
=IF(I15="Truck",
CLEAN(
SUBSTITUTE(
SUBSTITUTE(TRIM(C15),"and ","And"), 'Should this be "and" rather than "and " to match the "Bus" and "Car"?
CHAR(32),
""
)
),
IF(I15="Bus",
CLEAN(
SUBSTITUTE(
SUBSTITUTE(TRIM(C15),"and","And"),
CHAR(32),
""
)& "B1"
),
IF(I15="Car",
CLEAN(
SUBSTITUTE(
SUBSTITUTE(TRIM(C15),"and","And"),
CHAR(32),
""
)
), 'Should this bracket be after the "C1" instead of here?
""
)& "C1"
)
)
现在,如果I15 为空白,则追踪:I15 不是“卡车”且I15 不是“公共汽车”,因此我们得到:
=IF(FALSE,
N/A,
IF(FALSE,
N/A,
IF(I15="Car",
CLEAN(
SUBSTITUTE(
SUBSTITUTE(TRIM(C15),"and","And"),
CHAR(32),
""
)
), 'Should this bracket be after the "C1" instead of here?
""
)& "C1"
)
)
把它简化,你会得到:
IF(I15="Car",
CLEAN(
SUBSTITUTE(
SUBSTITUTE(TRIM(C15),"and","And"),
CHAR(32),
""
)
),
""
)& "C1"
但是,I15 是空白的,而不是“汽车”,所以它变成了 IF(FALSE, N/A, "") & "C1" - 意思是,如果 I15 不是“公共汽车”或“卡车”,它将始终显示“C1”。
另外,您可能可以将代码简化为 =CLEAN(SUBSTITUTE(SUBSTITUTE(TRIM(C15),"and","And"),CHAR(32),"")) & IF(I15="Bus", "B1", IF(I15="Car", "C1", ""))
如果您可以在某处设置表格,则可以将IF 语句更改为VLOOKUP,或者如果您有一个用于下拉值的表格,则可以使用CHOOSE(MATCH(..))