我很难找到这个Excel数据库的解决方案,我需要从价格列表中填充给定周的正确促销费用。
我有100多种产品的清单(我将使用Coke Zero作为示例),每周数据详细说明我的公司是否已在某一周内向零售商支付了促销费用。数据库详细说明了我的公司是否支付了广告,有3个选项:1)没有广告,没有任何费用,2)基本广告(50美元成本)或3)高级广告(1000美元成本)。几乎所有促销活动的基本广告费用至少为50美元,通常我们会支付4周的广告费用。但是,有时我们会决定将这4周中的一个升级为高级广告 - 我们只收取特定周的保费率(1000美元而不是高级+基本广告或1000美元+50美元)。我无法修改数据的格式,有时会在两个单独的行上复制相同的产品代码和周。
问题:我需要一个公式来填充D栏中的正确促销费用,如果在同一周内支付了高级广告,请务必不要支付50美元的基本广告费用。
数据示例: 电子表格示例:
这些促销费用是固定的,我在另一张表中有一张表,我可以查询促销费用并填写数据。看起来像附件:
费用表示例:
提前致谢。如果我需要澄清任何事情,请告诉我。
答案 0 :(得分: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))
A$2:A22=A2
获取与A2
相同的产品数组
WEEKDAY(B$2:B22)=WEEKDAY(B2)
获取数组,其中工作日与当前行(B2
)工作日相同
C$2:C22=$G$4
获取匹配Premium(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)
如果本周没有高级广告,只需在成本表中查看当前类型并获取成本