我有两列A& B与美元金额。如果列A和列之间存在+或 - 10%,我需要在列C中返回值True。 B我还需要C列进行整理。
谢谢
答案 0 :(得分:2)
这应该这样做:
=IF(((B1-A1)/A1)^2 >= .01, True, False)
答案 1 :(得分:2)
=IF(ABS((B2-A2)/A2)<0.1, "True", "False")
这得到差异的绝对值,然后检查它是否小于.1或10%。如果是,则返回true,否则返回false。我假设您要检查与A列中的值有10%的差异。我不确定您的意思是四舍五入。如果你详细说明这一点,我可以修改我的答案。
答案 2 :(得分:0)
嗯,不确定问题是什么......但如果您正在寻找以下问题的解决方案:“A必须介于B + 10%和B-10%之间” ,以下公式应该对你有所帮助! I f A介于B-10和B + 10%之间,if语句返回true;
=IF(AND(A1>=B1*0,9;A1<=B1*1,1);"True";"False")
另一种方式是B必须在A + -10%之间:
=IF(AND(B1>=A1*0,9;B1<=A1*1,1);"True";"False")
PS:你不能= ROUNDUP()或= ROUNDDOWN()一个布尔值;
答案 3 :(得分:0)
虽然评论中指定的OP“相对于A栏”,但原始问题更有趣并且仍然没有答案,值得回答。
如果数字没有顺序,则应根据 列与另一列的10%不同来衡量10%的差异。不合格的陈述相当于“其中一个数字比另一个大至少10%”,这总是意味着使用较小的数字作为基线。
思考问题:如果周一有12美元,周二有50%的损失,周三有50%的涨幅,你周三会有多少钱?
此外,除了最简单的情况外,其他任何答案都没有处理。逻辑的完整流程图实际上如下所示:
abs(b-a)/min(abs(a),abs(b))
是否大于或等于0.1的真值(现在除以现在只有现在是安全的,因为除数永远不为零)。可以使用AND
和OR
函数在Excel中有效地实现此逻辑,并且可以使用IF
函数来避免除零。
=AND(B2-A2, OR(NOT(A2*B2), ABS(B2-A2)/IF(A2*B2, MIN(ABS(A2), ABS(B2)), 1) >= 0.1))
如果A列是基线,并且您只希望将A列中的值基于+/- 10%,那么仍然需要大部分逻辑。唯一的变化是
=AND(B2-A2, OR(NOT(A2*B2), ABS(B2-A2)/IF(A2, ABS(A2), 1) >= 0.1))
注意好奇:为什么在C列的两个值中IF
以1
结尾?这是因为Excel非常愚蠢并且评估条件的每个部分,即使是那些不应该进行逻辑评估的部分。因此,即使通过逻辑AND和OR语句也无法避免除零,因为Excel无论如何都会评估条件的不相关部分(同时逻辑上忽略其结果!)。因此,必须明确地避免除零,否则无论逻辑语句的实际结果是什么,它都会导致单元格显示零除错误。当然,在分母中放置1
会导致错误的计算,但这只会在出现除零的情况下发生,并且在这种情况下,逻辑会从AND返回其他一个语句结果OR。
如果任何数字是正数,负数或零的任何混合,即任何实数,但不是无穷大等非实数,则公式也有效。示例输出: