如何做行列两个方向的关联查找
例题描述和简单分析
有 Excel 文件 book1.xlsx,如下所示:
现在要按左侧的分数标准填充右侧的分数列,结果如下:
解法及简要说明
在集算器中编写脚本 score.dfx,如下所示:
A |
|
1 |
=file("score.xlsx").xlsopen() |
2 |
=A1.xlscell("A1":"D5").import@t() |
3 |
=A2.pivot@r(#1:score;age,num) |
4 |
=A3.new(age.split("-").(int(left(~,2))):age,num,score) |
5 |
=A4.select(~.age(1)<=arg1 && ~.age(2)>=arg1 && num<=arg2)(1).score |
简要说明:
A1、A2 读取 Excel 文件的 A1:D5 区域,@t 表示第一行为表头
A3 交叉表,列转行
A4 将年龄字段拆分为年龄区间的两个端点值
A5 从 A4 中找到符合年龄、成绩的分数
Excel中加载插件 ExcelRaq.xll 后。
在 I2 格输入公式:=esproc("score",G2,H2),并以扩展方式填充后续分数列,即可算出结果。