excel 根据条件从不同列中找出最小值,并乘以另一列

olqngx59  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(161)

我通常在这个网站上搜索并找到我的问题的答案,但我无法解决这个问题。我请求您的帮助。
我有一个表,在这个表的不同列中有不同的价格。我需要从这些列中找到最低值,然后乘以数量,而不创建新列。在找到这些最低值时,我需要根据一个标准来找到它们。由于这个表将向下延伸,我必须使用横向公式。

| 数量|标准|第1栏|价格|第2栏|价格|第3栏|价格|第4栏|价格|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 1个|是|材料1|10万美元|材料1|九万元|材料1|七万五千元|材料1|10万美元|
| 第二章|是|材料二|12万美元|材料二|十五万元|材料二|二十二万元|材料二|二十一万元|
| 1个|是|材料三|14万美元|材料三|14万美元|材料三|十四万五千元|材料三|13万美元|
| 四个|否|材料四|十五万元|材料四|九万元|材料四|八万元|材料四|八万元|
| 第二章|否|材料五|九万元|材料五|六万元|材料五|五万五千元|材料五|五万六千元|
| 1个|否|材料六|一万五|材料六|一万五|材料六|两万美元|材料六|一万元|
| 三个|是|材料七|十五万元|材料七|二十万元|材料七|18万美元|材料七|九万元|
结果应该是:(1*75) + (2*120) + (1*130) + 0 + 0 + 0 + (3*90)
我试过=SUBTOTAL(5,OFFSET(A3,SEQUENCE(ROWS公式,但没有成功。excel不支持序列。我不能在每列旁边写一个“if”公式,因为我不应该增加表格的列。

0g0grzrc

0g0grzrc1#

Office 2019没有动态数组公式,我们需要使用SUBTOTAL和OFFSET将每行的MINIMUMS数组返回给SUMPRODUCT,然后将其他条件添加到SUMPRODUCT:

=SUMPRODUCT((B2:B8="YES")*A2:A8,SUBTOTAL(5,OFFSET(C1:J1,ROW(C2:J8)-MIN(ROW(C2:J8))+1,0)))

一个注意,对我来说,数字作为文本而不是数字传输。确保它们是真实的数字,否则这将不起作用。
对于那些使用动态数组公式的用户,我们可以丢弃Volatile Offset:

=SUM(BYROW(ROW(A2:A8),LAMBDA(z,INDEX(A:A,z)*(INDEX(B:B,z)="YES")*MIN(INDEX(C:J,z,SEQUENCE(,COLUMNS(C:J),1))))))

相关问题