这是我在这里的第一个问题,所以如果有问题请不要杀我。我在这个网站上找到了很多解决方案,但这次没有。不幸的是,我还不能发布图片。这并不容易,但我会努力的。
重点:
我的数据有以下标题:
Decision_Id Opponent1 Opponent2 Opponent3 Suitor1 Suitor2 Suitor3 Suitor4
Decision_id 是唯一的整数标识符。其余的都是字符串。
每行代表一个特定的司法判决。每个决定最多可以有 3 个对手(防守方)和最多 4 个追求者(进攻方)。一个特定的一方可以在一个决定中成为追求者,在另一个决定中成为对手。
我想得到什么:
跨表,其中行和列标题都是我在表中遇到的不同方。(没问题,完成了。)每个单元格显示特定对手(由行标题定义)被特定追求者(列标题)攻击的不同决定=>所有对角线单元格等于零(一方不能攻击自身)并且表不是对称的。
我努力了
应用于第一个单元格,然后展开:
=COUNTIFS("所有对手的固定范围:$B$2:$D$6","通缉对手值:$A2","所有追求者的固定范围:$E$2:$H$6","通缉追求者值: B$1")
我有一个错误。我发现标准范围必须具有相同的大小。好的,创建了虚拟空列 => 没有错误,但是,结果显然被低估了。我认为只有当对手和追求者有相同的“数字”时才有匹配。详细说明:对于每一行,excel 会针对相应的值测试对手 1 和诉讼者 1,然后是对手 2 和诉讼者 2,然后对手 3 和诉讼者 3 ......这实际上解释了为什么范围必须具有相同的大小。
所以,我需要什么
是,对于每一行,让 excel 测试所有对手的通缉对手值,测试所有追求者的通缉追求者值。如果至少一个对手和一个追求者对应,给它一个匹配并计算这个决定。(即使对手1和追求者3有想要的值)
评论
我已经制作了一个 VBA 代码来完成这项工作,但它太慢了(整个表大约需要 5 个小时),我希望对这种不同的表执行相同的操作和/或修改这个。所以我对“纯excel”,快速解决方案感兴趣。
非常感谢!