SPSS 使用一个单元格的值调用另一个单元格

发布于 2025-01-03 16:09:08 字数 295 浏览 0 评论 0原文

下面是一些数据:

    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”列中获取值,并使用它们来选择列分数的行号。例如,对于测试 AI 希望找到 100 和 62 的总和,因为这是分数的第一行和第二行的值。测试 BI 希望求出 100、62 和 90 的总和。 有人对如何做到这一点有任何想法吗?我想在 Excel 中使用类似于间接函数的东西?谢谢

Below is some data:

    Test Day1 Day2 Score
    A 1 2 100
    B 1 3 62
    C 3 4 90
    D 2 4 20
    E 4 5 80

I am trying to take the values from column 'day' and 'day2' and use them to select the row number for the column score. For example for Test A I would like to find the sum of 100 and 62 because that is the values of the first and second rows of score. Test B I would like to find the sum of 100, 62 and 90.
Does anyone have any ideas on how to go about doing this? I am looking to use something similar to the indirect function in Excel? Thank You

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟花肆意 2025-01-10 16:09:08

诀窍是将变量“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

The trick is to convert variable "Score" as a row. Could not think of an easy way how to avoid SAVE/GET - room for improvements.

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. 

The result:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文