Excel 2016复杂嵌套IF

时间:2017-05-05 21:00:49

标签: sql-server excel excel-vba excel-formula vba

我正在处理超过2,000行的Excel工作表。我附上的图片显示了问题。我已经在StackOverflow&上检查了问题。我没有看到解决这种情况的任何事情:

Snapshot that illustrates the situation

我需要一个公式来计算E列中的百分比(E的格式为百分比)。我可以在逻辑上手动完成这项工作,但需要花费15分钟,而且报告需要每天生成。该列表来自SQL Server,我也无法获取我的SQL查询来处理这个问题,也无法使其在VBA for Excel中运行。

Cell E3的逻辑:

  

如果C2 ='house'且C3 ='house'且C4 ='house',则'100'为       如果C2 ='house'且C3 ='house'且C4 ='前景',则'C3 / SUM(C3:C4)'
      如果C2 ='house'且C3 ='前景'而C4 ='house',则'C3 / SUM(C2:C3)'
      如果C2 ='house'且C3 ='前景'且C4 ='前景',那么'C3 / SUM(C2:C3)'       如果C2 ='前景'并且C3 ='前景'并且C4 ='前景',那么'100'       如果C2 ='前景'并且C3 ='房子'而C4 ='房子',则'100'       如果C2 ='前景'并且C3 ='房子'而C4 ='前景',那么'C3 / SUM(C3:C4)'       如果C2 ='前景'并且C3 ='前景'而C4 ='房子',那么'100'左

提前感谢您的任何帮助!

1 个答案:

答案 0 :(得分:3)

显然,您的问题中存在拼写错误,您打算使用D列而非C的数字计算,即D3/Sum(D3:D4)等。

你可以尝试简单地用嵌套if 来编写那个逻辑......但我意识到这个看似数字逻辑练习的规则实际上要简单得多。总之,如果有的话,等式应该检测从“House”到“Prospect”的翻转。

E3尝试此公式并将其复制下来:

E3:
=D3/(D3+  (D2*(C2="House")*(C3="Prospect"))  +  (D4*(C3="House")*(C4="Prospect")))