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))}; ))
我正在尝试用 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))}; ))