Excel在排序文本时忽略前导代码(45)连字符

时间:2015-01-15 00:35:53

标签: excel-2013

当我对以下内容进行排序时: -花花公子 炫 爸 _DATE

我得到: _日期 爸 -花花公子 炫

而不是像预期的那样: _日期 -花花公子 爸 炫

在网上似乎有很多关于在字母数字文本中处理连字符的问题。通常解决方案是剥离连字符以获得正确的排序,但我的问题是我想要Excel识别前导的短划线。

所有文字前面都有一个'在细胞中。

破折号是代码(45)

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

最好的'解决方案可能是编写您自己的代码以按照您的意愿进行排序,但我认为您可以通过公式实现您想要的,假设:

  • 只有代码(45)优先于字母字符
  • 您的数据将无处包含三个a

您的数据在图像中以黄色突出显示,所需输出以蓝色突出显示。我添加了一些额外的输入:

SO27955024 example

B1中的公式(复制到西装)是:

 =IF(LEFT(A1)="-",SUBSTITUTE(SUBSTITUTE(A1,MID(A1,2,1),MID(A1,2,1)&"aaa"),"-",""),A1)

ColumnD是使用Paste Special,Values和Sorted A-Z插入的ColumnB的副本。

F1中的公式,复制到西装,是:

=IF(MID(D1,2,3)="aaa","-"&LEFT(D1)&MID(D1,4,LEN(D1)),D1)