Excel 中多个查找的聚合值

Aggregate Values of Multiple Lookups in Excel

我正在寻找一个非VBA解决这个问题的方法。

假设我在电子表格中有一个图表(在计算机科学意义上)如下:

    A          B          C           D           
1  Vertex    Neighbors   Degree    Avg Nghbr Deg
2  A         B,C              2              2.5  
3  B         A,C              2              2.5         
4  C         A,B,D            3      1.666666667
5  D         C                1                3

我已经手动输入了 C 和 D 列,但我希望自动计算它们。我已经为 C 列找到了合理的解决方案,这些解决方案基本上计算逗号并加 1。但是对于 D 列,我找不到解决方案。我发现无数文章解释如何在 one 列中多次查找 one 值,还有无数文章解释如何查找 multiple 值一次在 multiple 列中,但我不知道如何在一个列中查找多个值,取回值数组,以及然后取该数组的平均值。我确信这可以在 VBA 中完成,但我更喜欢原生 Excel 解决方案(如果存在的话)。

显然我想扩展它以便我可以对顶点的邻居进行其他分析。大概一旦我知道了分析一个 "looked-up array" 的方法,我也将能够在其他功能中使用它。

非常感谢任何帮助。

获取 C 列:

=LEN(B2)-LEN(SUBSTITUTE(B2,",",""))+1

要获取 D 列,请将 SUMPRODUCT 与 SEARCH 结合使用:

=SUMPRODUCT((ISNUMBER(SEARCH("," & $A:$A & ",","," & B2 & ",")))*$C:$C)/C2