Google sheets 找到给定每月数量和每月费率的总价

Google sheets 找到给定每月数量和每月费率的总价,google-sheets,formula,Google Sheets,Formula,问题:根据日期将数量乘以不同费率的最佳公式是什么 示例: 费率1:2017年1月1日-2017年4月30日$5 费率2:2017年5月1日-2017年6月30日$6 费率3:2017年7月1日-2017年12月31日$7 每月苹果数 1月10日 二月三十日 三月十日 四月:五十 五月:40 六月:七十 七月:八十 八月四十日 九月二十日 10月10日 11月40日 十二月:100 日期为2017年5月9日。公式将发现日期以速率2开始,以速率3结束 因此,计算结果为: ((40+70)*$

问题:根据日期将数量乘以不同费率的最佳公式是什么

示例:

  • 费率1:2017年1月1日-2017年4月30日$5
  • 费率2:2017年5月1日-2017年6月30日$6
  • 费率3:2017年7月1日-2017年12月31日$7
每月苹果数

  • 1月10日

  • 二月三十日

  • 三月十日
  • 四月:五十
  • 五月:40
  • 六月:七十
  • 七月:八十
  • 八月四十日
  • 九月二十日
  • 10月10日
  • 11月40日
  • 十二月:100
日期为2017年5月9日。公式将发现日期以速率2开始,以速率3结束

因此,计算结果为:
((40+70)*$6)+((80+40+20+10+40+100)*$7))=$2690.00


用这种方法计算的最佳公式是什么?使用
SUMPRODUCT
?我很困惑

设置费率查找表的格式,其中第一列是每个费率生效的日期:

+----------+---+
| 1/1/2017 | 5 |
| 5/1/2017 | 6 |
| 7/1/2017 | 7 |
+----------+---+
假设上面是A1:B3。现在,您可以使用查找任何日期的费率(例如,日期为C9)

此处
vlookup
在第一列中搜索日期,并从第二列返回小于或等于搜索键的最近匹配值

然后您可以像这样使用sumproduct:

=sumproduct(D9:D15, arrayformula(vlookup(C9:C15, A1:B3, 2, True))
在这里,在C9:C15范围内查找每个日期的费率(因此这些日期应该是每个月的第一天)

最后,考虑到像2017年5月9日这样的日期,您希望完成所有这些。假设这个日期是E1。让我们在那里打1分。比如,在F1中:

=date(2017, month(E1), 1) 
然后根据日期至少为F1的条件筛选日期/金额数组:
筛选(C:C,C>=F1)
。最终结果将是

=sumproduct(filter(D:D, C:C >= F1), arrayformula(vlookup(filter(C:C, C >= F1), A1:B3, 2, True))

谢谢你,疯狂的伊万。我没有说得更清楚是我的错。我想如果我分享工作簿的草稿,你就会明白我的意思:突出显示的单元格是公式应该放在的地方。你能提供访问权限吗?床单被保护好了。啊,我的错-给你@Chef1075,
=sumproduct(filter(D:D, C:C >= F1), arrayformula(vlookup(filter(C:C, C >= F1), A1:B3, 2, True))