Ошибка Excel #VALUE с COUNTIF внутри функции LET при использовании FILTER

Я пытаюсь написать формулу, используя LET, FILTER, COUNTIF и динамические диапазоны для подсчета появления уникальных значений в столбце таблицы.

У меня есть таблица Excel tbl с одним столбцом df_col вот так:

df_col а а б с с с

Я написал следующую функцию Excel, которая выводит уникальные значения вместе со счетчиком в таблице.

=LET(
  col_all; tbl[df_col];
  col_uniq; UNIQUE(col_all);
  col_count; COUNTIF(col_all; col_uniq);
  HSTACK(col_uniq; col_count)
)

Результат, который я получаю, соответствует моим ожиданиям

а 2 б 1 с 3

Затем я хотел добавить FILTER в столбец, чтобы сделать это для подмножества данных.

=LET(
  col_filtered; FILTER(tbl[df_col]; tbl[df_col]< = "b");
  col_uniq; UNIQUE(col_filtered);
  col_count; COUNTIF(col_filtered; col_uniq);
  HSTACK(col_uniq; col_count);
)

Результат выдает ошибки. Кажется, функция COUNTIF не работает с полученным списком.

а #ЦЕНИТЬ б #ЦЕНИТЬ #Н/Д #ЦЕНИТЬ

Выполнение оценки формулы показывает ошибку в части COUNTIF. Тем не менее, выполнение этих шагов в Excel без функции LET работает нормально.

В чем проблема?

Проблему можно упростить до того, почему этот код не работает. =LET(данные; {"a";"a";"b";"c";"c";"c"}; data_unique; UNIQUE(данные); COUNTIF(данные; data_unique) )

Michael 24.02.2024 18:43

Предлагаю поискать функцию GROUPBY(). Он делает все, что вы хотите в этом запросе.

JvdV 24.02.2024 21:21
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
2
156
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

COUNTIF функция требует диапазона ячеек.

В вашем первом примере ссылка на таблицу преобразуется в диапазон ячеек.

Во втором и в комментариях передаваемые параметры являются массивами, что не принимается функцией. Это приводит к ошибке #VALUE.

Информация: Microsoft

спасибо, это объясняет, почему он не работает. Есть ли какая-либо альтернативная функция, которая могла бы напрямую подсчитывать вхождения в массиве?

Michael 24.02.2024 19:18

Я нашел обходное решение ограничения ссылок COUNTIF, которое подходит для моего случая.

=LET(
  col_all; FILTER(tbl[df_col]; tbl[df_col]< = "b");
  col_uniq; UNIQUE(col_all);
  col_count; BYROW(col_uniq; LAMBDA(x; SUM(--(col_all=x))));
  res;HSTACK(col_uniq; col_count);
  res
)

Другие вопросы по теме