如何将结构不定的多个长行划分并重组成新格式

例题描述和简单分析

有 csv 文件 csv.csv,数据如下所示:

csv 文件里 N 条记录是横向摆放的,第1行是每条记录的国家字段的值,第2行是每条记录的其他字段名,第3行是每条记录的其他字段值。现在要将该文件整理成规范的行式数据,结果如下:

解法及简要说明

在集算器中编写脚本 p1.dfx,如下所示:


A

1

=file("csv.csv").read()

2

=A1.split@n(",")

3

=transpose(A2).run(if(~(1)=="",~(1)=~[-1](1)))

4

=create(country,cate,value)

5

>A3.(A4.record(~))

6

=A4.pivot(country;cate,value)

7

=file("result.csv").export@ct(A6)

简要说明:

A1   把 csv 的数据读成串

A2  把串拆成序列的序列

A3  转置序列的序列,把第一列国家补完整

A4  建空序表(country,cate,value)

A5  将 A3 填入序表

A6  用 pivot 函数行转列

A7  结果导出到 result.csv

执行程序后,result.csv 就是需要的结果。

问答搜集

https://stackoverflow.com/questions/63698177/how-to-split-a-long-row-by-specific-range-and-add-it-as-a-new-rows-excel