【问题标题】:Matrix with boolean values from a list of paired observations具有来自成对观察列表的布尔值的矩阵
【发布时间】:2015-04-29 11:51:37
【问题描述】:

在下面的电子表格中,单元格值代表一个人的 ID。 A列的人喜欢B列的人,但可能不是相互的。因此,在第一行数据中,人 1 喜欢 2。在第二行数据中,人 1 喜欢 3。

A B    
1 2    
1 3    
2 1    
2 4    
3 4    
4 1

我正在寻找一种方法来创建一个 4 x 4 矩阵,其中 (i,j) 中的条目为 1 表示我喜欢人 j,输入为 0 表示他们不喜欢。上面的例子在执行完任务后应该是这样的:

  1 2 3 4
1 0 1 1 0    
2 1 0 0 1    
3 0 0 0 1    
4 1 0 0 0

所以,读取矩阵的第一行,我们会这样解释:人 1 不喜欢人 1(单元格值 = 0),人 1 喜欢人 2(单元格值 = 1),人 1 喜欢人 3 (单元格值=1),人1不喜欢人4(单元格值=0)

注意配对顺序很重要,所以[4 2] 不等于[2 4]

这是怎么做到的?

【问题讨论】:

  • 您能澄清一下您的问题吗?我不清楚你如何将列值映射到二进制表示,我对布尔上下文感到困惑。
  • 对不起,上面有4个人。 A列的人喜欢B列的人,但可能不是相互的。我正在寻找一种方法来获得一个 4x4 矩阵,其中 (i,j) 中的条目为 1 表示我喜欢人 j,输入为 0 表示他们不喜欢。

标签: excel matrix boolean


【解决方案1】:

假设你现有的数据在A1:B6,那么在A10输入:

=COUNTIFS($A$1:$A$6, ROW()-9,$B$1:$B$6, COLUMN())

这将返回 1 或 0,具体取决于人员 1 是否喜欢人员 1。他们没有,所以你得到一个 0。它使用 Row()-9 返回 1COLUMN() 返回 1 以找到匹配项。

将此公式复制到 4 列并向下 4 行,ROW()-9COLUMN() 公式将返回适当的值以供检查到 COUNTIFS() 公式中,该公式将查找匹配对。

就个人而言,如果这是我必须做的事情并且我的矩阵大小不确定,我可能会将这些公式粘贴在第二个选项卡上,从 A1 开始并使用 ROW() 我不必调整由9 提供。但是对于同一个选项卡上的一个关闭,为了帮助检查结果,上面的很好。

【讨论】:

  • 非常感谢。您所说的第二个标签是指第 2 页吗?
  • 是的。只是工作簿中的另一个选项卡。然后,您可以将公式复制并粘贴到许多行和列中,以匹配包含关系列表的选项卡中的 max(A:A) 或 max(B:B)。
猜你喜欢
  • 2018-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 2018-09-04
  • 1970-01-01
相关资源
最近更新 更多