我正在尝试使用 Excel 整理二元数据。我有关于战争的信息,大致如下:
Conflict | Country | Government | Side | repdyads | mondyads |
Spanish-American War | Spain | monarchy | 1 |
Spanish-American War | USA | republic | 2 |
World War II | Britain | monarchy | 1 |
World War II | France | republic | 1 |
World War II | Poland | republic | 1 |
World War II | Germany | fascist | 2 |
World War II | Italy | monarchy | 2 |
我想做的是创建一个 COUNTIF 语句,告诉我同一“类型”的国家在战争中处于对立面的频率 - 因此对于上述示例,在西班牙-美国战争的所有列中返回 0,因为西班牙和美国是不同类型的,但在君主制列中返回 1,因为第二次世界大战有英国和意大利(显然,我的真实数据看起来有点不同)。我尝试过这样的事情:
=IF(COUNTIF(C3:C8,"monarchy")>0,1)
我的问题是,由于战争的参与者人数不同,我无法弄清楚如何制定一个适用于所有情况的公式。是否可以使用 VLOOKUP 或 INDEX 公式将范围指定为 A 列与第一行一致的所有区域?
谢谢大家!学习 Excel 很痛苦,但也很有趣。
编辑:扩展了上述示例。理想的结果应该是这样的:
Conflict | Country | Government | Side | repdyads | mondyads | repmondy |
Spanish-American War | Spain | monarchy | 1 | 0 | 0 | 1 |
Spanish-American War | USA | republic | 2 | | | |
World War I | Britain | monarchy | 1 | 0 | 1 | 1 |
World War I | France | republic | 1 | | | |
World War I | Russia | monarchy | 1 | | | |
World War I | Germany | monarchy | 2 | | | |
World War I | Austria| monarchy | 2 | | | |
World War I | Bulgaria| monarchy | 2 | | | |
World War II | Britain | monarchy | 1 | 1 | 0 | 1 |
World War II | France | republic | 1 | | | |
World War II | Poland | republic | 1 | | | |
World War II | Germany | fascist | 2 | | | |
World War II | Italy | monarchy | 2 | | | |
所以这告诉我,在西班牙-美国战争中,共和国与君主制国家作战。在第一次世界大战中,君主制国家与君主制国家作战,共和国与君主制国家作战,但共和国没有与其他共和国作战。二元组的数量并不重要,而是谁在与谁作战。
答案1
假设战争只有双方,那么
同一“类型”的国家在战争中站在对立面的频率
问题能够得到正确回答...
关键是...如果“冲突”-“政府”-“立场”是“第一次世界大战”-“君主制”-“1”,那么我们只需要寻找“第一次世界大战”-“君主制”-“2”。如果找到,则标记“是”,否则标记为空。
假设“冲突”列标题位于 A1。
- 将“同政府斗争?”文字放在 H1 中,
- 然后在 H2 单元格中输入这些公式,并向下拖动。
=IFERROR(IF(INDEX($C$2:$C$14,MATCH(1,INDEX((A2=$A$2:$A$14)*(C2=$C$2:$C$14)*(IF(D2=1,2,1)=$D$2:$D$14),0,1),0))=C2,"Yes",""),"")
- 完毕。
希望能帮助到你。
p/s :多个匹配的信息 index()+match() =关联。