对于一项调查(每个表包含 +2000 个条目),我需要对以下两个表(简化)执行困难的求和运算。
表 A:
| id sex
--+---------------
1 | 101 m
2 | 102 w
3 | 103 w
4 | 104 m
表 B:
| id a b
--+------------------
1 | 101 1 1
2 | 102 1 0
3 | 103 0 0
4 | 104 1 1
属性“a”和“b”的值应为是 (1) 和否 (0)。我现在想计算每个男性 (“m”) 在“a”列中值 1 的出现次数。
对于此示例,结果将是2
。
您可以使用这个文件(test.odt)作为起点,如果你打算提供帮助。
有人会怎么做?这在 Libre Calc 中可行吗,还是我应该使用 SQL?
答案1
我没有做过测试,但我认为在 Calc 中绝对可以实现。你需要结合查找和统计分析系统以及知识数组函数。
基本上,您想SUMIFS
在表 B 的 B 列上使用,引用性别VLOOKUP
。
因此,使用您的示例表,在表 B 的 B6 中:
=SUMIFS(B2:B5; B2:B5; VLOOKUP({A};TableA!$A$2:$B$5; 2)="m")
我不确定“{A}”是否是使查找以数组方式工作的正确语法。
或者,您可以在表 B 中的“id”和“a”之间插入一列,用来VLOOKUP
确定性别,然后用它SUMIFS
来确定(新的)第二列是否包含“m”。
编辑: 取消
看来 Vlookup 不能在数组公式中使用,所以这不起作用。但是,请在 B6 中尝试此操作:
=SUMPRODUCT(B2:B5*(LOOKUP(A2:A5,Sheet1.A2:Sheet1.A5,Sheet1.B2:Sheet1.B5)="m"))
表 A 在 Sheet1 中,表 B 在 Sheet2 中。