2017-02-23 277 views
0

我很难搞清楚这个Excel数据库的解决方案,我需要从价格列表中填充给定周内的正确促销费用。满足其他条件时排除求和数据的解决方案Excel

我有一个包含100多种产品的清单(我将以可乐零为例),每周数据详细说明我公司是否在给定的一周内向零售商支付促销费用。该数据库详细说明了我的公司是否支付了有3种选择的广告:1)没有任何费用的广告,2)基本广告(50美元成本)或3)高级广告(1000美元成本)。几乎所有的促销活动都至少需要50美元的基本广告费,我们通常会支付4周的时间。但是,有时我们会决定将这四周中的一个升级为高级广告 - 这种情况是,我们只收取该特定一周的保费(1000美元,而不是Premium +基本广告或1000美元+ 50美元)。我无法修改我的数据格式,有时会在两个单独的行上重复相同的产品代码和星期。

问题:我需要一个公式来在D列中填充正确的促销费用,如果在同一周支付了高级广告费用,肯定不会花费$ 50基本广告费用。数据的

实施例: 电子表格范例:

enter image description here

这些促销成本是固定的,我在另一片的表中我可以查找促销费用和填充数据。看起来像附:

成本表范例:预先

enter image description here

感谢。请让我知道是否需要澄清任何事情。

+0

什么id row2有premium,row3有Basic,row4有没有。这可能吗?如果是,那么预期的结果是什么? – nightcrawler23

回答

0

尝试此

=IF(SUMPRODUCT((A$2:A22=A2)*(WEEKDAY(B$2:B22)=WEEKDAY(B2))*(C$2:C22=$G$4))>=1,IF(MATCH(C2,$G$2:$G$4,0)=3,$H$4,0),VLOOKUP(C2,$G$2:$H$4,2,FALSE)) 

screenshot

A$2:A22=A2得到同样的产品的阵列A2 WEEKDAY(B$2:B22)=WEEKDAY(B2)得到数组,其中平日是与当前行(B2)平日 C$2:C22=$G$4获取的阵列型号匹配高级版(G4

这些数组的产品提供了一个数组,用于告知表中是否存在具有相同产品的行,与当前行相同WEEKDAY,并且广告类型为Premium。 SUMPRODUCT给出了这种细胞的数量。如果此计数大于等于1,则意味着本周有高级广告。

IF(MATCH(C2,$G$2:$G$4,0)=3,$H$4,0) 

如果当前行是一个有溢价,显示保费成本,否则为0(因为这一周有一个高级广告)

VLOOKUP(C2,$G$2:$H$4,2,FALSE) 

如果本周没有付费广告,只是VLOOKUP电流键入成本表并获得成本

+0

感谢队友,这是一个!聪明的解决方案,我仍然开始关注Sumproduct的灵活性。再次感谢! – Dammitjay

相关问题