大家好,
我正在尝试自动执行数据表中的某些更改,以便我可以进行一些分析。
我的数据表中有列Ref、%和更新百分比 ,我想通过脚本构建列 A、B、....、J:

给出 A 列:
- 恢复行参考 A(第 1 行):来自 % UPDATED 列的数据
- 继续其他行:% 列的数据
在我的初始数据库中,我的 Ref 列中有大约 100 个不同的行,这就是为什么我不直接使用“If”公式来创建 100 个新列。
您将发现附加的数据库。
感谢您的帮助。
例如,你可以拆分桌子

然后根据 % 列填充缺失值,最后将值更新到原始表中。有很多方法可以完成填充,其中一种是通过 JSL 和数据表下标
Names Default To Here(1);
dt = Datatable("BD");
dt_split = dt << Split(
Split By(:Ref),
Split(:"% UPDATED"n),
Group(:Ref, :"%"n),
Output Table("Split of BD by Ref"),
Sort by Column Property,
Invisible
);
cont_cols = dt_split << Get Column Names("String", "Continuous");
Remove From(cont_cols, 1); // drop %
perc_vals = dt_split[0, "%"];
For Each({cont_col}, cont_cols,
perc_vals_current = perc_vals;
non_missing = dt_split << Get Rows Where(!IsMissing(As Column(dt_split, cont_col)));
perc_vals_current[non_missing] = dt_split[non_missing, cont_col];
dt_split[0, cont_col] = perc_vals_current
);
dt << Update(
With(dt_split),
Match Columns(:Ref = :Ref),
Replace Columns in Main Table(None)
);
Close(dt_split, no save);
