Excel 如何通过 MAXIFS 比较填充矩阵

Excel How do I fill a matrix by MAXIFS comparison

我有这个数据集:

Groups   A A B B
location a b c d
         3 4 0 5

I also have a transformed version for better clarification:
Groups location
 A        a     3
 A        b     4
 B        c     0
 B        d     5

我想要的是一个填充二进制的简单矩阵。

该函数应检查每一行和每一列是否具有来自其各自组的 MAXIF,然后将其与第二个值(即来自其组的第二个 MAXIF)进行比较。因此组合 b 和 d 必须解析为 1.

预期输出如下: 我有一个数据集,其中包含一个 n 个位置,这些位置被分组为一个 n 个组。所以 A 组有位置 a,b; B组位置c,d。这些列代表每个位置的不同特征。 我想从中构建一个矩阵,但不是“通常的”距离矩阵,而是包含以下问题的矩阵: -构建矩阵时,比较每组的最大值 -我想知道,如果我正在查看的值是该组中的最大值,如果是,则将其与第二组最大值进行比较 -> 如果这个数字更大 -> 将其设置为 1 - 这应该自动填充矩阵中的所有字段

我需要这个来对我的数据进行网络分析,以消除不需要的连接

我目前的输入有点像这样:

=IF(AND(>0(MAXIF()=value)>(AND(>0(MAXIF()=value);1;0)

How it looks like in excel:
=IF(AND(A<>$A7; A>0;(MAXIFS($A:$D;$A:$D;A)=A))<(AND(A<>$A7; $C7>0;MAXIFS($C:$C;$A:$A;$A7)=$C7));1;0)

但是我认为在内部它实际上并不比较值,而是比较 TRUES 和 FALSE。因此小于 MAX 的连接得到 1s。我目前的输出:

    A A B B
    a b c d
A a 0 0 0 0
A b 0 0 1 0
B c 0 0 0 0
B d 1 0 0 0

如您所见,值 a 和 d 解析为 1。

输出应如下所示: (矩阵一般来说是0,但是当像d(5)和b(4)这样的信标相遇时,它会得到“1”,因为两者都是他们组中最高的。只有这里是两组之间的联系。

    A A B B
    a b c d
A a 0 0 0 0
A b 1 0 0 1
B c 0 0 0 0
B d 0 1 0 0

我明白这个问题,但不知道如何解决。

我很确定这不能正常工作,但它可能会有所帮助。我对您的数据进行了轻微的重组,以便更容易编写公式。

C3等中的公式为

=IF(AND(MAXIFS($G:$G,$A:$A,$A3)=$G3,MAXIFS($C:$F,$C:$F,C)=C,$G3>MAXIFS($G:$G,$A:$A,"<>" & $A3)),1,0)

只是检查G中的值是否为A列组的最大值,第7行的值是否为第1行组的最大值,以及G中的值是否大于最大值另一组的。如果他们都满意,它会插入一个“1”。