13.3 交叉转行式

 

有如下交叉表数据,列方向是产品规格的宽度,行方向是长度:

imagepng

现在想要把数据变成行式列表,规格显示为宽度 * 长度,如下图所示:

imagepng

代码如下:

=spl("=E(?1).pivot@r(Style:Length;Width,Price).select(Price).sort(Width,Length).new(Width/""*""/Length:Style,Price)",Sheet1!A1:K16)

把数据以 Style 为基准做列转行,同时命名为新列名 Length,选项 @r 表示是列转行,原来的列名转换为新列 Width 的值,原来的交叉格值转换成新列 Price 的值。
然后选出价格 Price 不为空的行,然后按 Width 和 Length 排序,再构造新数据集,用 Width 加星号加 Length 为新列 Style 的值,同时选取 Price 列。


帮你早下班 - esProc 桌面版与 Excel 数据处理
13.2 行式转交叉
13.4 行列的上层分类互转 - 列转行