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