以下是一些数据:
Test Day1 Day2 Score
A 1 2 100
B 1 3 62
C 3 4 90
D 2 4 20
E 4 5 80
我正在尝试从“day”和“day2”列中获取值,并使用它们来选择列分数的行号。例如,对于测试A,我想找到100和62的总和,因为这是第一和第二行得分的值。测试B我想找到100,62和90的总和。 有没有人对如何做这个有任何想法?我想在Excel中使用类似于间接功能的东西?谢谢
答案 0 :(得分:1)
诀窍是将变量“Score”转换为一行。想不出如何避免SAVE / GET的简单方法 - 改进的余地。
file handle tmp
/name = "C:\DATA\Temp".
***.
data list free /Test (a1) Day1 (f8) Day2 (f8) Score (f8).
begin data
A 1 2 100
B 1 3 62
C 3 4 90
D 2 4 20
E 4 5 80
end data.
comp f = 1.
var wid all (12).
save out "tmp\data.sav".
***.
get "tmp\data.sav"
/keep score.
flip.
comp f = 1.
match files
/file "tmp\data.sav"
/table *
/by f
/drop case_lbl.
comp stat = 0.
do rep var = var001 to var005
/k = 1 to 5.
if range(k, Day1, Day2) stat = sum(stat, var).
end rep.
list Test Day1 Day2 Score stat.
结果:
Test Day1 Day2 Score stat
A 1 2 100 162
B 1 3 62 252
C 3 4 90 110
D 2 4 20 172
E 4 5 80 100
Number of cases read: 5 Number of cases listed: 5