Excel 根据发票日期返回价格

问题描述 投票:0回答:1

我需要帮助根据发票日期返回产品价格。

F.e.我有一款产品已于 2023 年 11 月 27 日以 50 欧元的价格出售。有两种不同的价目表:欧元和美元。由于它已以欧元出售,我需要它从欧元表中返回价目表价格。在欧元表中,该产品的价格范围从 2020-01-01 到 2024-01-01,因此例如最新价格为 2023-12-01 为 52 欧元,但另一个较旧的价格是在 2022 年输入的-01-01,价格是 49 欧元。因此,由于销售发生在 2023 年 11 月 27 日(2023 年 12 月 1 日价格变动之前),我需要它返回 2022 年 1 月 1 日至 49 欧元价目表中可用的价格(也很棒)如果也可以返回日期)。

我已附上文档,并且尝试通过加入产品和日期来使用 VLOOKUP,不幸的是我没有得到结果。我将非常感激!

主表

J列目前有这个公式:

=IF(I2="EUR";VLOOKUP(E2&VLOOKUP(D2;EUR!G:G;1;TRUE);EUR!A:J;7;0);VLOOKUP(E2&VLOOKUP(D2;USD!G:G;1;TRUE);USD!A:J;7;0))

我打印筛选的产品目前在这里并不重要(这是一个巨大的列表)

欧元表

美元表

excel excel-formula return return-value price
1个回答
0
投票

我终于成功了。

我使用过滤公式来获取与库存零件编号匹配且小于购买日期的所有日期。然后我对过滤后的日期进行降序排序,并按顺序抓取第一个日期。
这给了我日期,这是使用 sumproduct 公式获取价格的关键。 这个小得多的例子效果很好。

请注意,我最后添加了一个 March 值,以确保即使使用未排序的数据它也能正常工作。

获取日期的公式为:

=INDEX(SORT(FILTER(EUR!J:J,(EUR!D:D=E2)*(EUR!J:J<D2),""),,-1),SEQUENCE(1,1,1,1))

然后获取价格:

=SUMPRODUCT((EUR!J:J=<Date from previous formula>)*(EUR!D:D=E2)*EUR!G:G)
© www.soinside.com 2019 - 2024. All rights reserved.