在一个单元格中列出相同“名”所对应的“序”,以“,”和“~”分割

1、在一个单元格中列出相同“名”所对应的“序”,以“,”和“~”分割(如F7);

2、在H列中列出在相同的F列对应的“字”相同的“序”号,并上述方式,以“,”和“~”分割

四川省
浏览 130
收藏
5
分享
5 +1
11
+1
全部评论 11
 
恰同学少年
公式写法之一 https://bbs.wps.cn/topic/86002
· 黑龙江省
回复
 
wils
wils Lv.2 潜力创作者

Lv.2潜力创作者

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(','); }
· 海南省
1
回复
wils
wilsLv.2 潜力创作者

Lv.2潜力创作者

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 }
· 海南省
1
回复