如何用一个 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有两列,首行列名分别是custseller,要用这两列去过滤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的第23

4

=file("result.xlsx").xlsexport@A3)



esProc有个网格式的桌面IDE,其实可以直接在里查看计算结果,也可以不必保存。

还有更多的针对Excel的计算案例:

SPL 解析及导出 Excel

excel 合并汇总

文本文件和 Excel 在 esProc 里处理方式相同,很多算法可以互相参考:

SPL 结构化文本计算

esProc 是专业的文件处理脚本,即安即用,调试方便,类库丰富,详情参考 文件处理器

关于集算器安装使用、获得免费授权和相关技术资料,可以参见 如何使用集算器