%20%D0%B8%20%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%20%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE%20%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0.png)
Недавно у меня были данные объемом около 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; или убедившись, что данные изначально хранятся в правильном формате.