Excel中多个查找的聚合值

时间:2017-05-16 17:33:23

标签: arrays excel function lookup

我正在寻找解决此问题的非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列,我找不到解决方案。我发现了无数文章解释了如何在一个列中多次查找一个值,以及无数文章解释了如何查找多个多个列中输入一次值,但我无法弄清楚如何在一列中查找多个值,返回一个值数组,然后取该数组的平均值。我确信这可以在VBA中完成,但我更喜欢本机Excel解决方案(如果存在)。

显然我想扩展它,以便我可以对顶点的邻居进行其他分析。据推测,一旦我知道分析“查找数组”的方法,我就可以在其他函数中使用它。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

获取C列:

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

要获得D列,请使用SUMPRODUCT with SEARCH:

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

enter image description here