function compress(nums) {
const sorted = nums.sort((a, b) => a - b);
const result = [];
let start = sorted[0];
let end = sorted[0];
for (let i = 1; i < sorted.length; i++) {
if (sorted[i] === end + 1) {
end = sorted[i];
} else {
result.push(start === end ? `${start}` : `${start}~${end}`);
start = end = sorted[i];
}
}
result.push(start === end ? `${start}` : `${start}~${end}`);
return result.join(',');
}
function tt()
{
const a = Range("A2:C20").Value2
const m = {}
for (const i of a) {
if (i[1] in m) {
m[i[1]].push(i[0])
}
else {
m[i[1]] = [i[0]]
}
}
let r = []
for (const i in m) {
r.push([i, compress(m[i])])
}
Range("E1:F1").EntireColumn.ClearContents()
Range("F1").EntireColumn.NumberFormat = "@"
Range("E1").Resize(r.length, 2).Value2 = r
}
Lv.2潜力创作者
Lv.2潜力创作者