如何 select 范围的一部分,这是公式的输出

How to select a part of a range, which is output of a formula

我好像真的不擅长写可读的标题:-)

情况如下:
我有一个名称和值的列表,我想计算对应于每个名称的值的总和:

Name  Value
   a      1
   b      2
   a      3
   c      4
   a      5
   b      6
   c      7

这看起来很简单:

for 'a' : =SUMIF($A:$A,A2,$B:$B)
for 'b' : =SUMIF($A:$A,A3,$B:$B)
for 'c' : =SUMIF($A:$A,A4,$B:$B)

糟糕,错了,因为A4不包含'c',它又包含了'a'。

不费吹灰之力:我们可以使用 UNIQUE() 公式,它将值 'a'、'b' 和 'c' 放入 F 列 (=UNIQUE(A2:A8)) .
一旦我们有了这个,我们就可以很容易地使用这个公式:

for 'a' : =SUMIF($A:$A,F2,$B:$B)
for 'b' : =SUMIF($A:$A,F3,$B:$B)
for 'c' : =SUMIF($A:$A,F4,$B:$B)

这是正确的,但这意味着我必须使用 F 列作为参考。
我不想要那个,我想要这样的东西:

for 'a' : =SUMIF($A:$A,UNIQUE(A2:A8).getElement(1),$B:$B)
for 'b' : =SUMIF($A:$A,UNIQUE(A2:A8).getElement(2),$B:$B)
for 'c' : =SUMIF($A:$A,UNIQUE(A2:A8).getElement(3),$B:$B)

这显然没有意义,因为 getElement() 不存在。
如何访问 UNIQUE() 结果的一部分?

这是我的 Excel sheet 的样子:

我不确定你是否想要两列,但使用 ms365:

D2中的公式:

=CHOOSE({1,2},UNIQUE(A2:A8),SUMIF(A2:A8,UNIQUE(A2:A8),B2:B8))

为了回答关于“.GetElement”的部分,我想说 INDEX() 是一个非常好的翻译,它允许您将 slice 成一个数组并选择你喜欢的任何一个。我不认为这是你的目标,但如果说你只对整个数组的第二行感兴趣,你可以使用:=INDEX(PreviousFormula, 2, 0)。 '0' 将确保我们 return 构成该行的所有列,如果数组最初仅由单个列组成,则可以将其省略。