Необычная особенность функции UNIQUE() и формул динамического массива

Необычная особенность функции UNIQUE() и формул динамического массива

Недавно у меня были данные объемом около 150 000 строк, из которых около 100 000 строк имели уникальное значение в столбце E. Столбец выглядел так:

Column Heading
1
2
2
3
...
99999
99999
100000

Чтобы посчитать уникальные строки, я попытался COUNT(UNIQUE(E:E))-1и получил вывод "-1". Однако по счастливой случайности я обнаружил, что это COUNT(UNIQUE(E:E)+0)-1дало мне ожидаемый вывод "100000". Я редко использую динамические формулы массива, поэтому мне хотелось узнать, почему это имеет значение.

Я подумал, что разница может быть связана с использованием всего столбца, поскольку я знаю, что иногда это может быть проблематично с функциями СЧЁТЕСЛИМН/СУММЕСЛИМН, но COUNT(UNIQUE(E1:E150001))-1всё равно выдаёт «-1» и COUNT(UNIQUE(E1:E150001)+0)-1всё равно выдаёт «100000».

Может ли кто-нибудь объяснить мне это поведение? Как "+0" в функции COUNT() "исправляет" мою проблему? Какую цель выполняет "+0"?

Большое вам спасибо за вашу помощь!

решение1

Ваши данные в столбце E, вероятно, хранятся как текст. Поскольку функция COUNT подсчитывает только числовые значения, она вернет 0.

Когда вы добавляете 0, Excel «прибавляет» его к каждому значению, а также преобразует их в числа, поэтому функция СЧЁТ даст правильный результат.

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

Связанный контент