我有一个包含以下标题和总计行的表格: 。它的数据行包含模块名称和其他列的数字。
我也有这张桌子:
。在Allocation
列中,每个特定细分受众群都会得到:CODE_ZONE
,CONST_ZONE
或RAM_ZONE
。
对于SegmentValues中的每个模块(行),我需要根据Segments中的分配,使其CODE_ZONE
,CONST_ZONE
或RAM_ZONE
单元格为其中分配的所有段的总和。我尝试过这个公式:=SUMIF(Segments[Allocation], "CODE_ZONE", SegmentValues[@[DIFUNCT]:[SECUID]])
,但它只适用于第一个元素。在这种情况下应该使用什么功能以及如何使用?
答案 0 :(得分:1)
尝试使用MMULT
这样的功能:
=MMULT(SegmentValues[@[DIFUNCT]:[SECUID]],(Segments[Allocation]="CODE_ZONE")+0)
MMULT
会将单行中的每个值与相同大小的单个列中的相应值相乘(并将单个值的结果相加)。所有值都必须为数字,以便(Segments[Allocation]="CODE_ZONE")
返回TRUE/FALSE
值数组,并添加0将这些值转换为1/0
值
SegmentValues
范围不得包含空格,但零可以
答案 1 :(得分:0)
我设法使用这个公式:
=SUMPRODUCT(SegmentValues[@[DIFUNCT]:[SECUID]]*(SegmentValues[[#Headers],[DIFUNCT]:[SECUID]]=Segments[Segments])*(Segments[Allocation]="CODE_ZONE")
这是一个只有一个阵列的SUMPRODUCT,仅从一个范围中获取,但有两个条件:
CODE_ZONE
。