1

Excel для Mac v15.37 на OSX 10.11.6.

Вот минимально воспроизводимый пример:

  |   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 ответ1

2

Это проблема точности с плавающей запятой.

3.4 - 4.0 на самом деле что-то вроде -0.6000000000001

а также

3.5 - 4.1 на самом деле что-то вроде -0.5999999999999

Основные вещи. http://floating-point-gui.de/

Решением было округлить выходной столбец.

C3 = ROUND(A3 - B3, 2)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .