Arrayformula 用于分配其他项目的升级成本

Arrayformula to distribute ramp-up cost on other projects

我正在尝试用 ARRAYFORMULA 解决这个问题,但我有点卡住了,所以我希望能在这里得到一些帮助。所以,我有这个项目计算sheet,包含多个客户和多个项目。我们有升级成本("ToAllocate=TRUE",每个客户),我们需要分配给其他项目("Carrier=TRUE",每个客户)。升级成本(每小时成本 * 小时数)需要分配给 "Carrier" 个项目,与项目小时数 / 运营商总小时数成比例。我需要想出 arrayformula,所以我会填写 M 列:

https://docs.google.com/spreadsheets/d/1OsWX80jvKgQAYuHi56ULBPm43GrZrnt7bvwtH5dy-ZM/edit?usp=sharing (J、K 和 L 列是辅助列,因此我不会将所有内容都放在 M 列中)

删除 J2:M 范围内的所有内容

将此公式粘贴到 J2 单元格中:

=ARRAYFORMULA(IF(D2:D=TRUE; {
       VLOOKUP(A2:A; QUERY(A:H; "select A,sum(H) where C=TRUE group by A"; 0); 2; 0)\
  F2:F/VLOOKUP(A2:A; QUERY(A:H; "select A,sum(F) where D=TRUE group by A"; 0); 2; 0)\
       VLOOKUP(A2:A; QUERY(A:H; "select A,sum(H) where C=TRUE group by A"; 0); 2; 0)*
 (F2:F/VLOOKUP(A2:A; QUERY(A:H; "select A,sum(F) where D=TRUE group by A"; 0); 2; 0))\
  I2:I+VLOOKUP(A2:A; QUERY(A:H; "select A,sum(H) where C=TRUE group by A"; 0); 2; 0)*
 (F2:F/VLOOKUP(A2:A; QUERY(A:H; "select A,sum(F) where D=TRUE group by A"; 0); 2; 0))}; ))