Мне нужно понять эту часть ($B$1:$B$15<>"") в следующей формуле, используемой для представления столбца данных с удаленными пустыми ячейками:

=IFERROR(INDEX($B$1:$B$15,AGGREGATE(15,6,(ROW($B$1:$B$15)-ROW($B$1)+1)/($B$1:$B$15<>""),ROWS(C$1:C1))),"") 

Эта формула была дана на другом сайте для вопроса « Удалить пробелы из столбца с формулой», но я не смог найти больше информации об этом. Я особенно хочу знать, что делает эта часть: ($B$1:$B$15<>"") . Я могу предположить, что это диапазон, а не "" , но я не могу понять, как его использовать в этой формуле.

Может ли кто-нибудь помочь мне в этом вопросе?

Спасибо.

1 ответ1

1

Часть, которую вы запросили, делает, как вы говорите:

$B$1:$B$15<>""

Это возвращает массив значений TRUE/FALSE , FALSE если каждая ячейка пуста, и TRUE если это не так. В формуле массив относительных номеров строк делится на этот массив - когда вы делите на TRUE которое действует как 1, так что вы просто получаете номер строки, когда вы делите на FALSE, который действует как ноль, так что вы получаете #DIV/0! ошибка.

Функция AGGREGATE настроена на игнорирование ошибок, поэтому она находит kth наименьшую строку, где B1:B15 не пустое

...... тогда INDEX возвращает фактическое значение для этой ячейки.

В первой ячейке - в идеале C1 - k = 1, поэтому вы получаете первое непустое значение, а затем функция ROWS увеличивается при копировании, чтобы вы получали каждое последующее непустое значение

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