我正在尝试编写一条语句,该语句将读取相邻单元格的内容并根据结果选择一个值来标点一个段落。就像下面的句子一样。
声明1,声明2,声明3。
如果下一条语句包含内容,则包含逗号。如果下一条语句没有内容,则包括句号。如果下一个和上一个语句不包含任何内容,则不包含任何内容。我使用了下面的公式,但是应该加上句号的那部分返回FALSE:
=IF(A1<>"",IF(C1<>"",", "),IF(A1<>"",IF(C1="",". "),IF(A1="",IF(C1="",""))))
我做错了什么?
答案 0 :(得分:3)
我相信您的公式过于复杂。例如,您最多可以测试3次A1是否为空
您是否要实现这一目标?
=IF(A1<>"",IF(C1<>"","; ",""),IF(C1="",". ",""))
答案 1 :(得分:3)
IF
语句具有以下格式:=IF(<Statement>, <Value_If_True>, <Value_If_False>)
如果我们以相同的方式分解您的代码,则会得到以下信息:
=IF(<Statement1>, IF_TRUE1(<Statement2>, <Value_If_True2>), IF_FALSE1(<Statement3>, IF_TRUE3(<Statement4>, <Value_If_True4>), IF_FALSE3(<Statement5>, IF_TRUE5(<Statement6>, <Value_If_True6>))))
默认情况下,缺少的<Value_If_False>
将返回FALSE
。
希望您可以在那里看到所有重复的“问题”节点-并且"."
无法到达,因为它要求A1<>""
为FALSE
,并且也 TRUE
。
重写代码,仍然有1个“丢失”终止符:
=IF(A1="", IF(C1="", "", FALSE), IF(C1="", ".", ", "))
(或者,如果您真的想花哨的话,请使用CHOOSE
语句:)
=CHOOSE(1+(A1="")+2*(C1=""), ", ", FALSE, ".", "")
答案 2 :(得分:0)
公式的这一部分似乎是多余的,因为它已被初始逻辑参数捕获:
IF(A1<>"",IF(C1="",". "),IF(A1="",IF(C1="","")))
我可能无法完全理解您的目标,但这应该可以解决问题: 我假设这里的语句是由A,B和C列中的输入定义的,并且必须首先填充A列。
=IF(A1="","",IF(AND(B1="",C1=""),". ",", "))
如果我要离开的话,请与您共享表/表格结构,以取得理想的结果。
答案 3 :(得分:0)