示例:数据表按级别排序
原数据与结果:
代码:
function text()
{
Range("a1","d1").Copy(Range("f1","i1"));
var arr=Range("a2",Range("d9999").End(xlUp)).Value();
var level=["员工","经理","董事长"];//注意重要:这是排序规则,必须按循序排序,可从大-小也可从小-大。
var order=function(a,b){//自定义匿名函数
var i=level.findIndex(x=>x==a[3]);//a:级别内容与数组内容对比,返回序号。
var j=level.findIndex(x=>x==b[3]);//b:级别内容与数组内容对比,返回序号。
return j-i;//自定义匿名函数,返回内容。升序i-j,降序j-i
}
arr.sort(order);//排序,升序i-j,降序j-i
for(var [i,v] of arr.entries()){//entries()转换为数组的索引号和元素值
Range("f1:i1").Offset(i+1).Value2=v;
}
}
function text() { Range("a1","d1").Copy(Range("f1","i1")); var arr=Range("a2",Range("d9999").End(xlUp)).Value(); var level=["员工","经理","董事长"];//注意重要:这是排序规则,必须按循序排序,可从大-小也可从小-大。 var order=function(a,b){//自定义匿名函数 var i=level.findIndex(x=>x==a[3]);//a:级别内容与数组内容对比,返回序号。 var j=level.findIndex(x=>x==b[3]);//b:级别内容与数组内容对比,返回序号。 return j-i;//自定义匿名函数,返回内容。升序i-j,降序j-i } arr.sort(order);//排序,升序i-j,降序j-i for(var [i,v] of arr.entries()){//entries()转换为数组的索引号和元素值 Range("f1:i1").Offset(i+1).Value2=v; } }