利用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中的表单名称和字段名称即可。 |