你好,我想知道是否可以编写一个类似于下面的分析脚本? 在一列(“月份”)中,我有一年中的所有 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"
);
)
);我还附上了包含公式的示例数据表。