Sheets header 行 ARRAYFORMULA,用于根据作业的周转时间和日期范围内收到的日期查找费率

Sheets header row ARRAYFORMULA to look up rate based on the job's turnaround AND date received within a range of dates

我有一个包含两张纸的 Google 表格工作簿:Jobs

A B C D E
1 Turnaround Received Rate Pages Total
2 Standard 12/2/2021 [=12=].40 204 .60
3 Rush 12/9/2021 [=12=].60 79 .40
4 Rush 12/29/2021 [=12=].60 24 .40
5 Standard 1/1/2022 [=12=].45 81 .45
6 Standard 1/2/2022 [=12=].45 137 .65
7 Standard 1/5/2022 [=12=].45 95 .75
8 Standard 1/15/2022 [=12=].45 162 .90

Rates

A B C D
1 Turnaround Base Rate Start Date End Date
2 Standard [=13=].40 9/1/2021 12/31/2021
3 Rush [=13=].60 8/17/2018 6/10/2022
4 Expedited [=13=].80 8/17/2018 6/10/2022
5 Daily .00 8/17/2018 6/10/2022
6 Standard [=13=].45 1/1/2022 6/10/2022

我正在尝试在 Jobs!C1 中使用 ARRAYFORMULA 来查找 Rates!B:B 中的值,其中 Jobs!A:A 中的 Turnaround 与 Rates!A:A 中的 Turnaround 和 Received Date 相匹配在 Jobs!B:B 中或介于 Rates!C:C 中的开始日期和 Rates!D:D 中的结束日期之间。

想法是费率可能会随着时间的推移而变化,但工作总数仍将使用每个工作进入时的正确费率进行计算。

我知道我不能将 SUMIFS 与 ARRAYFORMULA 一起使用,所以我尝试使用 QUERY,但这只会填充第一份工作的费率。

={"Rate"; 
ARRAYFORMULA(QUERY(Rates!A:D, 
"select B where A contains '"&Jobs!A2:A
&"' and C < date'"&TEXT(Jobs!B2:B, "YYYY-MM-DD")
&"' and D > date'"&TEXT(Jobs!B2:B, "YYYY-MM-DD")&"'",0))}

如果需要,我可以添加辅助列。我试图避免在添加作业时必须在列中手动填写公式。

这是工作簿的 link: Job Rate Lookup By Turnaround + Date Range

感谢任何帮助。

尝试:

={"Rate"; ARRAYFORMULA(IFNA(VLOOKUP(A2:A&B2:B, SORT({
 FILTER(Rates!A2:A, Rates!A2:A<>"")&Rates!C2:C, Rates!B2:B}, Rates!C2:C, 1, Rates!A2:A, 1), 2, 1)))}

当使用 ARRAYFORMULA 时,您将无法使用 QUERY 来获取整个值数组,因为它只会 return 找到的第一个值。

我使用 VLOOKUP 创建了一个匹配值的公式,但是我不得不将 Jobs 中的名称从 Standard 修改为 Standard 2

这是公式:

=IFERROR(ARRAYFORMULA(VLOOKUP(A2:A,Rates!A2:D6,2,0)))

这些是结果: