在 Excel 中使用“countif”函数很容易做到这一点,但是,如何定义一个列来计算其他列中指定值的总和?
示例:我有一个总答案表,如何计算每个问题的正确答案?
| 问题 | 学生1 | 学生2 | 正确答案 | 总答案 |
| 1 | A | A | A | 2 |
| 2 | A | 乙 | 乙 | 1 |
| 3 | C | 乙 | A | 0 |
非常感谢。
让我们从这张表开始(total_answers 只是为了显示正确的金额):

1. 堆栈

2. 添加公式(第 6 列):

3. 制表(或总结):

另请注意“数据类型”和“建模类型”列对于您正在建模的数据是否正确。
具有更高级公式的示例表,在您进一步了解 JSL 之前我不建议使用该公式:
Names Default To Here(1);
dt = New Table("Untitled 4",
Add Rows(5),
Set Header Height(50),
New Column("question", Numeric, "Ordinal", Format("Best", 12), Set Values([1, 2, 3, 4, 5])),
New Column("student1", Character, "Nominal", Set Values({"A", "A", "A", "A", "A"})),
New Column("student2", Character, "Nominal", Set Values({"A", "B", "B", "B", "A"})),
New Column("student3", Character, "Nominal", Set Values({"A", "B", "C", "C", "A"})),
New Column("student4", Character, "Nominal", Set Values({"A", "B", "C", "D", "A"})),
New Column("student5", Character, "Nominal", Set Values({"A", "B", "C", "D", "A"})),
New Column("right_answer", Character, "Nominal", Set Values({"A", "B", "C", "D", "E"}))
);
//Don' use if you don't have clear understanding what this does! Try first using data table method
//2::5 indicates indices of student result columns
dt << New Column("Total_answers", Numeric, Continuous,
<< Formula(
N Items(Loc(Current Data Table()[Row(), 2::6], :right_answer))
)
);
如果我有很多学生怎么办,我尝试根据你的建议做一个for循环,但我无法得到它。
(我在其他班级也收集过)

许多人在 JMP 中执行此操作,但它们确实与 excel 不同,因为JMP 不是电子表格。
一些带有公式的示例:
N Items(Loc(Words(:"student 1"n || :"student 2"n, ""), :"right answer"n));
N Items(Loc(Current Data Table()[row(), {"student 1", "student 2"}], :"right answer"n))
数据表:带有学生列的堆栈表:

添加公式来检查答案和正确答案之间的差异:

第 5 列的公式:
If(:right answer == :Data,
1,
0
)
创建表格/摘要(您可能必须将问题的建模类型更改为名义或序数):


这是为此创建公式的一种方法
Sum( :student 1 == :right answer, :student 2 == :right answer )