Excel中按歌手总数值降序排序遇数组报错的解决方法
解决Excel动态数组排序报错的问题
报错原因
你用=UNIQUE(VSTACK(...))生成的歌手列表是动态数组,这类数组是不可拆分的整体,Excel不允许修改数组中的单个单元格,也不能对数组的一部分执行排序操作,因此会弹出「You can't change part of an array.」的错误。
两种解决方法
方法1:转静态数据后手动排序
- 选中
UNIQUE(VSTACK(...))生成的所有歌手单元格(包括所有自动溢出的行)。 - 按
Ctrl+C复制,右键点击选中区域的第一个单元格,选择「粘贴值」,把动态数组转换成普通静态内容。 - 选中整个数据区域(包括sum列),点击工具栏的「排序」按钮,选择按sum列降序排序即可。
方法2:用动态数组公式直接生成排序结果
无需分步操作,直接用组合公式一步生成已排序的完整表格,还能随源数据自动更新:
=LET( 歌手列表, UNIQUE(VSTACK(music!I19:I54000, music!J19:J54000)), 12月20日数值, BYROW(歌手列表, LAMBDA(歌手, SUMPRODUCT((music!AG$19:AG$5000)*(歌手=music!$I$19:$I$5000)))), 12月21日数值, BYROW(歌手列表, LAMBDA(歌手, SUMPRODUCT((music!AH$19:AH$5000)*(歌手=music!$J$19:$J$5000)))), 总和, 12月20日数值+12月21日数值, SORT(HSTACK(歌手列表, 12月20日数值, 12月21日数值, 总和), 4, -1) )
- 公式里的
AG和AH列对应你的2024-12-20、2024-12-21列,根据实际表格调整即可。 SORT函数的第2个参数4表示按第4列(总和)排序,-1表示降序排列。
内容的提问来源于stack exchange,提问作者apostofes
相关产品推荐
相关产品推荐

