Excel 如何计算两个过滤后子集的交集

现有Excel 数据,如下所示:

AB
116
256
313
4545
533
624
7223
832
922
10325
11423
12245
13412
14111
1553
1614
1763
1875
1985
2095

A 列是 id,B 列是 value,现需计算所有 id 两两相交后,value 的最大值,例如:id 为 1 的 value 有 6、3、11、4,id 为 2 的 value 有 4、23、2,那么 id 为 1 和 id 为 2 相交后的结果中的最大值是 4。最终计算结果如下所示:

实现步骤:

1.      运行集算器(可以到润乾官网下载,用职场版,首次运行时会提示加载授权,下载个免费的就够了)

2.      打开 Excel,加载插件(Excel 的 Option 的 add-ins 对话框,下面有个 Go…按钮)ExcelRaq.xll,需要到 [esProc 的安装目录 \bin] 下找到这个插件文件。不太熟悉的读者可以再参考 Excel 的资料以了解具体加载方法。

3.     在集算器中编写脚本 book1.dfx:

AB
1if arg2==arg3>val=null
2else=arg1.select(~(1)==arg2).(~(2))
3=arg1.select(~(1)==arg3).(~(2))
4>val=(B2^B3).max()
5return val

A1:B1   若两个 ID 相同,则结果为空

A2:B4   若两个 ID 不同,则分别找出所有符合两个 ID 的值,求交集后找最大值

参数arg1 是从 Excel 传入的第一个参数,对应区域 A1:B20,是一个二维数组;arg2 是从 Excel 传入的第二个参数,是其中一个 ID;arg3 是从 Excel 传入的第三个参数,是另一个 ID,集算器中定义参数的方法如下(菜单:Program->Parameter):

4.      如上文图中所示,Excel 中,选中 H4,编写表达式:=esproc("book1",A1:B20,H2,D4),按 Enter 键后即可看到结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值