![按派生列对 Excel 进行排序,然后按其他列对 Excel 进行排序](https://linux22.com/image/1541470/%E6%8C%89%E6%B4%BE%E7%94%9F%E5%88%97%E5%AF%B9%20Excel%20%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F%EF%BC%8C%E7%84%B6%E5%90%8E%E6%8C%89%E5%85%B6%E4%BB%96%E5%88%97%E5%AF%B9%20Excel%20%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F.png)
OSX 10.11.6 上的 Excel for Mac v15.37。
这是一个最低限度可重复的例子:
| A | B | C |
|=|=======|========|========|
|1| First | Second | F-S |
|2| 3.4 | 4.0 | =A2-B2 |
|3| 3.6 | 4.2 | =A3-B3 |
|4| 3.5 | 4.1 | =A4-B4 |
C
按 然后按排序A
。
输出为:
| A | B | C |
|=|=======|========|========|
|1| First | Second | F-S |
|2| 3.4 | 4.0 | -0.6 |
|3| 3.6 | 4.2 | -0.6 |
|4| 3.5 | 4.1 | -0.6 |
预期输出为:
| A | B | C |
|=|=======|========|========|
|1| First | Second | F-S |
|2| 3.4 | 4.0 | -0.6 |
|4| 3.5 | 4.1 | -0.6 |
|3| 3.6 | 4.2 | -0.6 |
如果我复制 C 列,然后将其粘贴回“值”,这样单元格包含文字-0.6
而不是公式,排序就没问题了。但我不想这样做。
我怎样才能正确排序?
答案1
这是一个浮点精度问题。
3.4 - 4.0 实际上是 -0.6000000000001
和
3.5 - 4.1 实际上是 -0.5999999999999
基本的东西。http://floating-point-gui.de/
解决方案是对输出列进行四舍五入。
C3 = ROUND(A3 - B3, 2)