【问题标题】:Return cell's value based on its date range in Excel根据 Excel 中的日期范围返回单元格的值
【发布时间】:2021-01-19 21:04:51
【问题描述】:

我有一张包含特定产品和日期的表格,我想获取与该日期对应的成本值。源表有一个日期范围,而不是实际匹配(这是我的问题)。 这是任务:我们正在尝试根据工作表 2 填写“成本”列

表 1:

Product Date Cost price
First 29/12/2021 result 1 (formula type X) 100
Second 05/01/2021 result 2 (formula type X) 200

另一张工作表具有所需结果(售价)的日期范围,如下所示:

表 2:

Product Start Date End Date Cost
First 28/12/2020 03/01/2021 result 1
Second 04/01/2021 11/01/2021 result 2

附言。我在同一日期对不同产品有不同的费用。因此,我们还需要添加一个参数,将一张表中的产品与另一张表中的产品相匹配。

【问题讨论】:

  • 或许使用 SUMIFS。

标签: excel excel-formula date-range


【解决方案1】:

如果给定的范围都从 A1 开始并在 D3 结束,那么在 Sheet1!C2 中可以使用以下代码: =INDEX(Sheet2!D:D,MATCH(1,(B2>Sheet2!B:B)*(B2<Sheet2!C:C)*(A2=Sheet2!A:A),0))

这是一个用ctrl + shift + enter输入的数组公式

它索引 sheet2 列 D 并搜索所有提到的条件都为真 (=1) 的第一个匹配项。每个条件为范围中的每个单元格生成 1 或 0,并将其乘以同一行中下一个范围的单元格的结果。如果任一条件为假,则乘以 0,结果为 0。 如果所有条件都为真,则结果为 1 (111)。 整体生成一个 {0,0,1,0,...} 数组,match 函数返回第一个 1 的第 N 次出现,等于条件为真的行数。

【讨论】:

  • 非常感谢您的回复。这是一个很大的帮助。但是,你能解释一下你写的公式吗?为什么在匹配公式中输入“1”而不是 A1(这是我们正在搜索的单元格),为什么其中有乘法?如果我使用这个确切的公式,如果日期是 2020 年 12 月 29 日,那么每个产品的成本都是相同的。但我在同一日期对不同产品有不同的费用。
  • 添加说明,以及匹配商品的第三个条件。
  • 这个公式能不能"=INDEX(Sheet2!D:D,MATCH(1,(B2>Sheet2!B:B)*​​(B2
  • 我想最好的方法是为此打开一个单独的问题。
【解决方案2】:

既然您提到了表格,我将假设您指的是真正的Excel Table,而不仅仅是格式化为外观的表格的单元格。

  • 工作表 1 表名为:tbl_ProductPrice
  • 工作表 2 表名为:tbl_ProductCost

工作表 1 中的“成本”列公式:

 =SUMIFS(tbl_ProductCost[Cost],[Date],">="&tbl_ProductCost[Start Date],[Date],"<="&tbl_ProductCost[End Date])

说明

第一个 SUMIFS 参数“成本”列是在所有条件都为真时进行汇总的内容。

第一个中频:

  • 第二个参数是要检查的日期标准。
  • 第三个参数是要检查的内容,大于或等于开始日期。

第二个中频:

  • 第四个参数是第二个 if 语句的日期
  • 第五个参数是检查是否小于或等于结束日期。

结果:


编辑

根据您对不同日期范围内的多个产品条目的评论,我会改用索引匹配方法。

=INDEX(tbl_ProductCost[Cost],MATCH(1,([@Product]=tbl_ProductCost[Product])*([@Date]>=tbl_ProductCost[Start Date])*([@Date]<=tbl_ProductCost[End Date]),0))

Ctrl+Shift+Enter输入公式,因为它是一个数组公式。

我也添加了产品匹配,因为您为每种产品类型指定了多个日期范围。

结果

【讨论】:

  • 谢谢我的朋友,但是数据在两个不同的工作表中,没有被转换为表格。只是原始的列和行。我选择了将它们转换为表格的数据范围(按照您的公式建议重命名表格),我只得到“#Value!”在“成本”列中
  • 查看编辑 - 您收到“#Value”错误,因为有多个匹配项。我看到了您对另一篇文章的评论,并且更好地了解了您现在的目标。尝试编辑。仅供参考 - 桌子的一个优点是它们在什么表上并不重要。这就像使用名为引用的工作簿。
  • 第二个等式与@P.b 基本相同,但使用表引用并添加产品匹配。
  • 谢谢 - 两位的回答都非常有帮助!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
  • 2014-07-10
  • 1970-01-01
相关资源
最近更新 更多