Excel - 以降序排序忽略空格

时间:2018-02-26 06:03:22

标签: excel sorting excel-formula

在附件中,当我按降序对C​​列进行排序时,它会将空白置于顶部。 (它不应该发生)

D列只是"复制为值"列C和排序在D列中正常工作

所以我猜我的公式在C栏中存在一些问题

文件链接:https://drive.google.com/open?id=1TRDympt3-CFn6916aLGxd3du5SL_FaxM

我正在使用的公式:= IF(A3 ="","",IF(ISERROR(MATCH(TRIM(S!$ A3),$ G $ 4:$ ģ8,0 $)),$ B3,"&#34))

2 个答案:

答案 0 :(得分:2)

这是由空字符串和空单元格之间的差异引起的。

公式的结果是空字符串“”,它与空单元格中的“无”字符不同。

排序时Excel会忽略真正的空单元格,而空字符串实际上是一个只包含空字符串字符的字符串,并包含在排序中。

我怀疑D列正确排序的原因是因为您只复制了C列中具有正常值的单元格。如果复制整个列(包括看起来像空白单元格的那些),那么问题仍然存在,因为那样你' ve还复制了空字符串字符。

在一列值中,如在D列中,您可以使用带有分隔符选项的“文本到列”工具删除空字符串,并取消选择所有分隔符。 (与将文本存储为实际数字的方式相同。)

但是对于公式,如在C列中,没有办法告诉Excel真正返回“Nothing”。

作为一种解决方法,如果您只有正值,则可以更改公式以返回值0而不是空字符串“”。因此,当按降序排序时,0值将放在底部。

然后,您还可以通过更改列的数字格式来隐藏0值:

  1. 选择数据表中的整个列
  2. 格式化单元格......
  3. 在“数字”选项卡上,选择“类别”
  4. 中的“自定义”
  5. 手动将类型值从“0.00”更改为“0.00; -0.00;”
  6. 此格式表示显示:

    • 带小数点后2位的正数
    • 带有2个小数位的负数和前面的负号
    • 将空白归零

答案 1 :(得分:1)

如果你需要能够按升序或降序排序,那么我不能仅仅通过公式来想出一个简单的解决方案。

下一个最简单的解决方案可能是应用自动过滤器来排除空白(实际上确实摆脱了空字符串)。

如果您通过VBA自动执行此操作,我认为首先对升序进行排序最简单,应用过滤器来删除空字符串,然后按降序排序。

您还可以合并前十名过滤器。