如何根据两种不同的条件求和 excel 中的值?

How to sum up values in excel based on two different conditions?

我在excel中有以下数据。正如您在上面看到的,每个 ArchID/ConopsID 都链接到不同的 FY,并且在每个 FY 中有不同的层级。我试图找到一种方法,如果层是 1 或 2,值保持不变。但是,如果您看到 ArchID = 700 仅上升到第 3 层,而 ArchID = 300 上升到第 4 层。我想如果 ArchID 仅上升到第 3 层,我们将采用第 3 层显示的值,但如果存在第 4 层,然后我们将第 3 层和第 4 层的值相加(求和)并将其作为新值插入。

例如,对于 ArchID = 322,在 2022 财年,第 3 层中显示的新值应为 8 (2 + 6)。至于 ArchID = 700,在 2022 财年,第 3 层中显示的值将保持在 5,因为没有第 4 层。

请告诉我如何解决这个问题。

这是一个有点冗长的函数(假定您提供的值取决于多个 requirements/fields - 例如 Arch/Conops,FY & Tier):

=SUM(($F:$F)*($B:$B=B4)*($D:$D=D4)*($C:$C=C4)*(IF($E:$E>3,3,$E:$E)=MIN(E4,3)))

这假设您也想 return 对第 4 层使用相同的 'tier 3+4 sum' -- 否则在此函数末尾仅引用 E4 而不是 min(E4,3) (这将 return 0),或者简单地在上面的整个函数周围放置一个大的 IF(例如概念上:IF(Tier>3, "n/a", function above) - 但您可以根据需要自定义)。


此外 - 上面的函数实际上会对任何大于 3 的层级(5,6,...)对应的数字求和(如果存在的话) - 假设这不是问题,但如果是这样的话,请按如下方式修改上面的函数:

=SUM(($F:$F)*($B:$B=B4)*($D:$D=D4)*($C:$C=C4)*(IF(($E:$E>3)*($E:$E<5),3,$E:$E)= E4))

(懒惰,将 E4 放在末尾,这将 return 0 用于第 4 层,但您可以使用类似的 if 语句代替上面的 E4/cutomize 进行自定义根据要求)