其实就是对数据源进行vlookup数据查询。下图A-E列为详细数据,H列为需要进行vlookup查询的数据。匹配不到保留下来并保持空项。

 

 代码如下,数组arr是需要进行查询的数据,brr则是查询来源的数组。结果写进了sheet2.

function 匹配数据(){
	let sht=Sheets.Item(1)
	var arr=sht.Range("H2:H"+ sht.Cells(sht.Rows.Count,8).End(3).Row).Value2.flat()
	var cur=sht.Range("A1").CurrentRegion
	var brr=sht.Range(sht.Cells(2,2),sht.Cells(cur.Rows.Count-1,cur.Columns.Count)).Value2
	var b=[["编码","店铺名称","商品","数量","单价"]]
	arr.forEach((x,index)=>{	
		var a=brr.filter(v=>x==v[0]).flat();
		b.push((a.length)?[index+1,...a]:[index+1,x]);
	})
	Sheets.Item(2).UsedRange.Clear() 
	Sheets.Item(2).Range("A1").Resize(b.length,b[0].length).Value2=b
}