根据其他2列中的条件求和一列中的几行

时间:2019-08-06 16:23:26

标签: excel vba excel-formula

我正在尝试确定是否有一种更简便的方法可以计算我在做什么。我想对我出售的每种地图的库存进行连续计数。在提供的图片的第9行中,将向用户显示他们出售的每张地图的总量,以便他们知道何时订购或获得更多。基本上,我从下拉列表中选择要出售的地图种类,然后输入数量,然后选择交易或招标方式。如果招标方法为“ AD 107+”,则需要将输入的数量添加到所选特定地图的总库存中,但招标类型为“现金”,“ CHECK”,“ PLASTIC”或“ AD 107-”那么需要从库存中减去输入的数量。我为公式设置的内容现在可以正常工作,但是我觉得无论是公式还是某些VBA代码,都有一种更简单的方法。

这是指向我的excel电子表格的链接,位于标签为“地图”的工作表上。

Click Here

1 个答案:

答案 0 :(得分:0)

地图页面上单元格 A9 中的原始公式如下所示,没有意义,如下所示,您总结了< strong> AD 107 + 两次,然后减去 AD 107 + 一次,这是不必要的,除了您并未回答问题中提到的“ AD 107-”

=(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"AD 107+"))+

(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"CASH")*-1)+

(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"CHECK")*-1)+

(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"PLASTIC")*-1)+

(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"AD 107+")*-1)+

(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"AD 107+"))

更正后的公式应如下所示:

=(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"AD 107+"))+

(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"CASH")*-1)+

(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"CHECK")*-1)+

(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"PLASTIC")*-1)+

(SUMIFS(E11:E21,B11:B21,A8,F11:F21,"AD 107-")*-1)

我对以下内容进行了如下修改,对于您来说可能不够短:

=-SUMIF(B11:B21,A8,E11:E21)+SUMIFS(E11:E21,B11:B21,A8,F11:F21,"AD 107+")*2

逻辑是

  

首先根据单元格中的地图类型汇总E列中的数量   A8,然后取出招标类型为“ AD 107+”的数量两次,因此   有效地是从总数中“减去”“ AD 107+”数量。

您可以使用相同的逻辑在单元格D9,G9和I9中重写公式。

通过我的方式,我认为您构造“地图”工作表的方式并不理想。例如,由于您合并了单元格,因此我无法轻松地在整个行中拖动公式。这将是编辑和检查公式的巨大障碍。