我想对一列进行排序,但只基于两个首字母。当两个首字母相同时,我想对另一列进行排序。
这stackoverflow 答案提到这个解决方案:
在 C 列中使用以下公式 =left(A1,2)&B1 或任何适当的单元格引用,然后仅按 C 列排序
有没有更优化的方法?创建一个列进行排序然后删除它听起来不太好。
答案1
假设您作为 O365 Excel 用户有权访问动态数组,那么您是对的。您可以对此进行优化,而不必创建辅助列。
SORTBY 函数允许您根据其他列的排序顺序对范围或数组进行排序,或者基于另一个数组的排序顺序,该数组可能是存储在内存中的动态数组。 因此,我们将创建一个动态数组,该数组是 A 列中每个单元格的左侧两个字符,然后使用那数组作为我们的主要排序键,B 列作为我们的次要排序键。
假设我有 5 列。主索引在 A 列,次索引在 B 列,而我想要按 A 和 B 排序的其他内容位于 C、D 和 E 列。
因此:
=SORTBY( A1:E10, LEFT(A1:A10,2), 1, B1:B10, 1 )
将创建一个溢出数组,即您想要的结果。