嗨,我想知道是否可以为类似于下面的分析编写脚本? 在一个列(“月”)中,我有一年中的所有 12 个月(1 月到 12 月),每个月在同一列中都有多行。 在下一列(“条件”)中,有该月的条件,“A”或“B”。 在第三列(“结果”)中,我想编写一个分析“条件”列的公式,如果值为“A”,则“结果”列的结果为“良好”,如果值为“B”,结果将是“Bad”。 但是,即使某个月份的一行结果为“B”,我也希望该月的所有行结果为“Bad”。 用文字解释有点难,所以我在下面举个例子。

有很多方法可以做到这一点,尤其是脚本。
下面的示例应该可以工作(将公式拆分为更小的部分并查看脚本指南以了解发生了什么(尤其是 Loc() 函数)可能是个好主意):
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(20),
Compress File When Saved(1),
New Column("Month",
Character,
"Nominal",
Set Values(
{"Jan", "Jan", "Jan", "Jan", "Jan", "Feb", "Feb", "Feb", "Feb", "Feb",
"Mar", "Mar", "Mar", "Mar", "Mar", "Apr", "Apr", "Apr", "Apr", "Apr"}
)
),
New Column("Condition",
Character,
"Nominal",
Set Values(
{"A", "A", "A", "B", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "B", "B", "A", "A", "A"}
)
)
);
dt << New Column("Result", Character, Nominal,
<< Formula(
If(Row() == 1,
monVals = :Month << Get As Matrix;
condVals = :Condition << Get As Matrix;
);
curMonthVals = Loc(monVals, :Month);
curCond = Loc(condVals[curMonthVals], "B");
If(N Items(curCond),
"Bad",
"Good"
);
)
);我还附上了包含公式的示例数据表。
感谢您的快速回复。 不幸的是,我给出的例子是为了传达这个想法。 对于我将使用的实际数据集,类似于“Month”值的列将被随机化,因此我将无法对这些值进行硬编码。