|
function test(){
let arr=Range("h7:k18").Value2 //数据装数组
let key=""
let dic={}
let n=0,m
let arrjg=[]
for (let i=0;i<arr.length;i++){//循环数组
//前2个和最后1个当成一个关键字
key = arr[i][0] +','+ arr[i][1] +','+ arr[i][3]
if (key in dic==false){ //看下关键字不在对象里
dic[key]=n //用关键字记录下结果数组的行号
//把数据这行数据添加到结果数组里
arrjg.push([arr[i][0],arr[i][1],arr[i][2],arr[i][3]])
n++ //自加1
}
else{ //这就表示结果数组里已经有数据了
m=dic[key] //m记录下结果数组的行
//结果数组的第三个不段拼接
arrjg[m][2]=arrjg[m][2] + ',' + arr[i][2]
}
}
//返回单元格
Range("s1").Resize(arrjg.length,arrjg[0].length).Value2=arrjg
} |
|