当我使用 Excel 或某些 VBA ( Range.Sort
)对列表进行排序时,我得到了意想不到的结果。似乎在对文本进行排序时,连字符被简单地忽略了:
用 Excel 排序的列表
align-content
align-items
alignment-baseline << Should be after "align-self"
align-self
animation-delay
Run Code Online (Sandbox Code Playgroud)
使用 Libre Office 排序的相同列表
align-content
align-items
align-self
alignment-baseline
animation-delay
Run Code Online (Sandbox Code Playgroud)
该文档未提供有关此行为的任何信息:
https://msdn.microsoft.com/en-us/library/office/ff840646.aspx
那么这种行为背后有什么规则吗?
是否可以选择以与人类相同的方式对列表进行排序(如 Libre Office 所做的那样)?
Excel 在进行排序时会忽略连字符,除非这是两个单词之间的唯一区别。
一种解决方法是创建一个“辅助列”,将hyphen(代码 45)替换为dot(代码 46)。在辅助列上排序
=SUBSTITUTE(A1,"-",".")
Run Code Online (Sandbox Code Playgroud)
我在某处读到默认排序顺序有一个序列:
前两个通常被忽略
既然如此,将 the 替换hyphen为 aspace可能更合乎逻辑。