魔方网表 让信息化更简单

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

查看: 2936|回复: 3

[求助] 列表去重

[复制链接]
香蕉你个布拿拿 发表于 2022-4-22 19:44:56 | 显示全部楼层 |阅读模式
用VLOOKUPC获取一个值的列表,但列表中会有重复值,如何去除重复值
cat 发表于 2023-11-15 00:05:30 | 显示全部楼层
利用JS和MFVLOOKUPC结合。

JS代码块:
function keepUnique(arr){for(var i=0;i<arr.length;i++){for(var j=i+1;j<arr.length;j++){if(arr[i]==arr[j]){arr.splice(j,1);j--;}}}return arr;}
可以把上一行内容复制到一个公式表里面,例如,我就把这个代码块放在了这个路径中:MFE(1,MFVLOOKUPC("公式表","公式表达式","公式名称","JS.KeepUnique"))

需要处理的列表路径如下:
MFVLOOKUPC("A表","城市","编码","0001")

直接把下面的去重公式复制到需要去重的字段里面即可:
MFJSEVAL(MFE(1,MFVLOOKUPC("公式表","公式表达式","公式名称","JS.KeepUnique"))
&" keepUnique"&
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
MFVLOOKUPC("A表","城市","编码","0001")
,"$V(","(['"),")$","'])"),",","','")
&".toString()")


公式意义:
JS代码块只能对数组进行去除重复元素,为了实现这一效果,具体操作如下:
Step1:  魔方列表值需要对首尾字符进行替换,并需要对每一个元素用引号裹住,也就是说要把 形如
$V(北京,上海,广州,北京,天津,重庆,上海)$
变成数组,形如
['北京','上海','广州','北京','天津','重庆','上海']

Step2:  将数组作为变量拼接到JS里面去执行解析(需要一定的JavaScript基础知识,反正就是自动的,以上代码块的内容是固定的)。通过这一步处理得到去重后的一个新数组。

Step3:  把数组转成字符串,这一步也是JS完成。

通过以上三步,就可以成功实现魔方列表中的元素去重。

对于拿来就用的小伙伴来说,只需要修改公式存放的路径和提取数据的路径即可。也就是改两个MFVLOOKUPC中的表单名称和字段名称即可。
回复

使用道具 举报

cat 发表于 2023-12-31 09:40:56 | 显示全部楼层
可以利用MFJSEVAL调用JS片段去重
回复

使用道具 举报

cat 发表于 2023-12-31 14:53:49 | 显示全部楼层
cat 发表于 2023-12-31 09:40
可以利用MFJSEVAL调用JS片段去重

MFJSEVAL公式运用实例1.docx (81.47 KB, 下载次数: 3, 售价: 10 魔方币)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则


Archiver|手机版|小黑屋|魔方软件 ( 京ICP备08008787号 )

京公网安备 11010702001722号

GMT+8, 2025-1-16 14:03 , Processed in 0.064641 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表