如果带有范围的语句

时间:2019-01-12 01:01:15

标签: excel excel-formula

我需要根据以下条件计算一些加权百分比:

If X=70% then I multiply 80% of 30%
If X=75% then I multiply 100% of 30%
If X=80% then I add 10% to the 30%
Anything beyond 80% is at most 40%.

如果说X = 73%,我如何计算该百分比?预计会超过80%。

1. If X<70%
2. If 70%<=X<75%
3. If 75%<=X<80%

if X = 69% it will be less than 24% (less than 80% of 30%) 
if X = 73%, the percentage will be between 24%-30% (between 80% and 100% of 30%), how can I determine how this is scaled? 
if X = 81%, then it will be at most 40%

1 个答案:

答案 0 :(得分:0)

我建议避免使用IF语句,而应将它替换为INDEX / MATCH,因为它具有更大的灵活性。基本上,您有两个乘数。一个在第一个结果的30%到40%之间变化,另一个在第一个结果的80%到100%之间变化。使用MATCH函数确定括号,例如=MATCH($A$1*100,{0,65,70,72.5,75,77.5,80,82.5,85},1)。在这里,您在A1中找到了73%的示例。大括号之间的数字分为9种:小于65%,65%至小于70%,70%至小于72.5%...以及85%及以上。您可以根据需要使用任意数量的方括号。只要确保它们按升序排列即可。 接下来,创建索引,例如=INDEX({30,30,31,32,33,35,38,40,42},5)。这里的关键是索引中的元素应该与MATCH函数中的括号一样多。我上面的示例INDEX将返回33,因为指定了第5个索引元素。在下面的公式中,5被MATCH函数代替。

=INDEX({30,30,31,32,33,35,38,40,42},MATCH($A$1*100,{0,65,70,72.5,75,77.5,80,82.5,85},1))

如果A1 = 72%,此函数将返回32(%)。调整索引和/或匹配数组以返回所需的结果。将结果除以100可将结果转换为百分比。 考虑到建议方法的灵活性,我认为您可能无需诉诸孪生乘法。但是,如果您的系统需要它,只需以与第一个相同的方式构建第二个乘法器。 =INDEX({75,80,85,90,95,100},MATCH($A$1*100,{0,65,70,75,80,85},1))然后彼此相乘。

=INDEX({75,80,85,90,95,100},MATCH($A$1*100,{0,65,70,75,80,85},1))*INDEX({30,30,31,32,33,35,38,40,42},MATCH($A$1*100,{0,65,70,72.5,75,77.5,80,82.5,85},1))/10^2

最后观察100除以将32 * 85 = 2720的结果(此处基于A1 = 73%)转换为27.2。将除数更改为10 ^ 4以获得27.2%