基于不同表中列标准的SUMIF表中的行

我有一个与以下标题和总计行的表: SegmentValues 。 它具有包含其他列的模块名称和编号的数据行。

我也有这张桌子: 段 。 在“ Allocation列中,每个特定的段将获得以下之一: CODE_ZONECONST_ZONERAM_ZONE

对于SegmentValues中的每个模块(行),我需要根据段中的分配将其CODE_ZONECONST_ZONERAM_ZONE单元格中的所有段的总和。 我已经尝试过这个公式: =SUMIF(Segments[Allocation], "CODE_ZONE", SegmentValues[@[DIFUNCT]:[SECUID]]) ,但它只适用于第一个元素。 在这种情况下应该使用什么function?

尝试使用这样的MMULTfunction:

=MMULT(SegmentValues[@[DIFUNCT]:[SECUID]],(Segments[Allocation]="CODE_ZONE")+0)

MMULT将单个行中的每个值与相同大小的单个列中的相应值相乘(并将结果相加成单个值)。 所有值都需要为数字(Segments[Allocation]="CODE_ZONE")返回一个TRUE/FALSE值的数组,然后加0将这些值转换为1/0

SegmentValues范围不能包含空格,但是零是可以的

我设法做到这一点使用这个公式:

 =SUMPRODUCT(SegmentValues[@[DIFUNCT]:[SECUID]]*(SegmentValues[[#Headers],[DIFUNCT]:[SECUID]]=Segments[Segments])*(Segments[Allocation]="CODE_ZONE") 

这是一个只有一个arrays的SUMPRODUCT,只从一个范围取得,但有两个条件:

  1. 要从SegmentValues添加的单元格的标题与段中的段名称匹配。
  2. 所述分段单元对应的分配列中的单元为CODE_ZONE