如何用一个 Excel 过滤另一个 Excel
可以用vlookup之类的函数解决这个问题,虽然整个过程不算太难,但只要数据发生变动,每次就要重复这个过程,这就显得太繁琐了。用VBA可以让这个过程自动化,但写法过于复杂,一般人很难掌握。
用esProc就简单多了,只需几行代码就能完成过滤:
A |
B |
D |
|
1 |
=file("param.xlsx").xlsimport() |
=A1.(_1) |
/打开存放参数的Excel,取第1列 |
2 |
=file("all.xlsx").xlsimport() |
/打开存放完整数据的Excel。 |
|
3 |
=A2.select(B1.contain(_2)) |
/用B1过滤A2的第2列,返回符合条件的行。 |
|
4 |
=file("result.xlsx").xlsexport@A3) |
/结果写入新Excel |
按多列过滤也很简单。比如param.xlsx有两列,首行列名分别是cust和seller,要用这两列去过滤all.xlsx,代码应该写作:
A |
B |
D |
|
1 |
=file("param.xlsx").xlsimport@t() |
=A1.([cust.seller]) |
/@t表示首行是列名 |
2 |
=file("all.xlsx").xlsimport() |
||
3 |
=A2.select(B1.contain([_2,_3])) |
/用B1过滤A2的第2、3列 |
|
4 |
=file("result.xlsx").xlsexport@A3) |
esProc有个网格式的桌面IDE,其实可以直接在里查看计算结果,也可以不必保存。
还有更多的针对Excel的计算案例:
文本文件和 Excel 在 esProc 里处理方式相同,很多算法可以互相参考:
esProc 是专业的文件处理脚本,即安即用,调试方便,类库丰富,详情参考 文件处理器
关于集算器安装使用、获得免费授权和相关技术资料,可以参见 如何使用集算器