В Google Sheets почему rank () по-разному обрабатывает два одинаковых значения? - PullRequest
1 голос
/ 12 марта 2020

У меня есть лист с четырьмя значениями, которые, я считаю, все равны (т.е. =A1=B1 возвращает TRUE для каждой пары). Однако, когда я использую rank() в списке с этими значениями, они получают разные ранги. Насколько мне известно, я не делаю ничего странного, такого как обходной путь, чтобы избежать дублирования. (В этом сценарии я хочу получить повторяющиеся ранги.) Значения, которые я пытаюсь rank(), были результатом trunc(sum(...),1), поэтому здесь нет скрытых десятичных знаков, которые я не заметил бы.

Я просто использую rank(A1,A1:B1) и arrayformula(rank(A1:B1,A1:B1). Эти две формулы возвращают разные результаты, даже.

Почему rank() рассматривает эти числа как разные? Есть ли какой-то флаг или дополнительное свойство в ячейках, которые обычно не видны, что делает их разными?

Эту ситуацию немного сложно объяснить, не видя данных, поэтому я воссоздал ситуацию в этой лист: https://docs.google.com/spreadsheets/d/1cL_15WnKgrxhJfT5lYYIg4sRAzaAzbpP7nH9hju1Rv4/edit?usp=sharing

1 Ответ

1 голос
/ 12 марта 2020

Это связано с Floating Point Error, чем с RANK.

В любом случае и поскольку вы пытаетесь увидеть, если "... нет никаких скрытых знаков после запятой, которые я не замечаю" вы можете использовать другой подход.

  • Используя функцию ROUND, округлите значения вашего trunc(sum(...),1) до скольких десятичных знаков, которые вам могут понадобиться. ИЛИ
  • В верхнем меню выберите Format> Number> More formats> Custom number formats и создайте свой собственный

enter image description here


После этого вы сможете визуально определить различия.
Дополнительно вы можете использовать функцию RANK

enter image description here

...