如何使用最后 2 个字符进行分组并对最新数据进行子集?大家好,
是否可以使用另一列的最后两个字符来创建用于分组的列?例如,我有这张表:
| 居住 | 分组 |
| 24W38财年 | 1 |
| 24W38财年 | 1 |
| 24W39财年 | 2 |
| 24W39财年 | 2 |
| 24W39财年 | 2 |
| 2024财年W40 | 3 |
| 财年24W41 | 4 |
| 财年24W41 | 4 |
是否也可以根据分组对前 2 个最新日期进行子集化?在此示例中,将选择 FY24W40 和 FY24W41,然后对其进行子集化,因为它们是“最新”数据。TIA
自动化和脚本回复:如何使用最后 2 个字符进行分组并对最新数据进行子集?考虑为你的周数创建新的列也是一个好主意(可能会让你更容易解决问题),然后使用它,你可以轻松地使用 Recode 创建此列

然后使用公式创建分组列(使用与 Jim 相同的公式,但“新”创建了 W 列)
Col Cumulative Sum(:W != Lag(:W))
然后您可以创建摘要(这可以通过多种不同的方式构建,具体取决于您想要如何选择值),更改组顺序,从摘要中选择前两行并从原始表中创建子集

dt_summary << Select Rows([1, 2]);
dt_subset = dt << Subset(Selected Rows(1), columns(:FYW));
Close(dt_summary, no save);
回复:如何使用最后 2 个字符进行分组并对最新数据进行子集?这是用于创建分组的公式
Col Cumulative Sum( Right( :FYW, 2 ) != Lag( Right( :FYW, 2 ) ) )
这是一个简单的脚本,用于查找 FYW 的两个最高值,并创建仅包含与这两个最高值匹配的行的子集
names default to here(1);
dt=current data table();
array=associative array(:fyw<<GET values=""></GET>