我正在尝试编写一个公式来减去两个单元格,但前提是它们有值。如果其中一个单元格没有值,我想在减法中使用不同的单元格。
例如:
| A | B |
---+------+------+
1 | 1200 | N/A |
2 | 400 | 400 |
3 | 100 | 600 |
我想在工作表中减去 等。但是,列中A1
有一个 N/A,所以我想从 中减去。A3
B
B2
B3
我该如何编写那个 If/Then 语句?
答案1
我只是为了完整性而添加这一点。关于“N/A”是故意的文本值还是 #N/A 错误条件的问题有点模糊,所以我将同时解决这两个问题。
正如问题中所述,您可以以不同的方式使用 IF 测试来检查单元格内容。如果目标值是文本字符串“N/A”,则可以使用等式 ( A1="N/A"
) 进行测试。如果目标值实际上是 #N/A 错误,或者您只是想验证单元格是否包含数字,那么甚至还有专用的测试函数,例如 ISNA 和 ISNUMBER。这些函数将为您提供 IF 条件的 True/False 结果,而无需使用等式将单元格值与另一个值进行测试。该方法通常如下所示:
IF(ISNA(A1),A3-A2,A3-A1)
或者
IF(ISNUMBER(A1),A3-A1,A3-A2)
Scott Craner 的答案通常是一种更好的方法。IFERROR 是一种特殊的专用 IF 测试,具有两个优点。一是它可以处理任何类型的错误情况,而不仅仅是 #N/A。例如,如果任一单元格包含任何错误情况或您尝试在算术中使用的文本(包括“N/A”),IFERROR 将处理结果。
第二个好处是它是 IF 测试的“简写形式”。它不需要正常的三个参数(测试条件、真结果、假结果)。它只需要“正常”公式,以及在正常公式产生错误时使用的替代公式或结果。这通常可以节省测试公式的时间,然后不必重复该公式才能使用它。公式本身充当测试条件。
但是,我能想到一种情况,在这种情况下 IFERROR 可能并不理想。假设您的数据包含文本字符串“N/A”作为缺失数据的故意占位符。您还希望仅使用该占位符来确定要使用哪个公式。此外,如果有任何其他非数字单元格内容或任何错误情况,您一定要知道。在这种情况下,您需要使用专门检查“N/A”的 IF 测试。它看起来会像这样:
IF(A1="N/A",A3-A2,A3-A1)