Как я могу расширить динамический диапазон с помощью пробелов между ячейками?

#excel #excel-formula

#excel #excel-формула

Вопрос:

Я хочу определить динамический диапазон, который будет расширять строки и столбцы моего диапазона всякий раз, когда вставляется новая строка или столбец. Моя текущая формула не хочет расширяться до ячейки $T$13 . Мои заголовки начинаются в строке $M$7 . Как я могу настроить свою формулу?

Используемая формула

=OFFSET(Sheet1!$M$8,0,0,COUNTA(Sheet1!$M:$M),COUNTA(Sheet1!$1:$1))

Мне нужно, чтобы мой диапазон расширялся до ячейки $T$13

введите описание изображения здесь

Ответ №1:

Прямо сейчас ваша формула подсчитывает количество текстовых значений в столбце M.

Это ненадежный подход, поскольку столбец M содержит только пять текстовых значений, но столбцы S и T имеют гораздо больше значений.

Если вы не знаете, в каком столбце может быть наибольшее количество записей, вы можете ввести вспомогательную ячейку в каждом столбце, которая подсчитывает количество записей ниже. Я предлагаю вам вставить новую строку 2. Например, в столбце M введите формулу в M2

 =counta($M$3:M$99999)
 

Скопируйте эту формулу в столбец T.

Затем вы можете оценить, какой из столбцов имеет наибольшее число

 =max(M2:T2)
 

Это можно подключить к вашей исходной формуле следующим образом:

 =OFFSET(Sheet1!$M$8,0,0,max(M2:T2),COUNTA(Sheet1!$1:$1))
 

Итак, теперь вместо того, чтобы просто смотреть, сколько строк в столбце M, формула использует максимальное количество строк в столбцах от M до S.

Теперь вы можете скрыть строку 2, если это нарушает дизайн вашего рабочего листа.

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

Это действительно должен быть новый вопрос, но здесь идет

Если в столбце есть числовые значения, вы можете использовать

 =MATCH(99^99,B5:B999,1)
 

Если в столбце есть текстовые значения, вы можете использовать

 =MATCH("zzz",C5:C999,1)
 

Соответствующим образом отрегулируйте свои диапазоны.

Комментарии:

1. @teyln данные в моем примере расширены до T13 , но что, если я добавлю еще один столбец для дат, мне нужно будет расширить =max(M2:T2) ? Есть какой-нибудь способ решить эту проблему, не зная последнего столбца или строки?

2. Нет. Если вы используете правильную формулу в строке 2, она вернет нужное вам число в СМЕЩЕНИИ. Прочтите мой пост еще раз. Я внес правку, чтобы перехватить пустые строки.

Ответ №2:

В итоге я использовал решение, упомянутое @tevlyn.

В пределах досягаемости $M2:$T2

У меня есть формула =IFERROR(MATCH(99^99,M$8:M$999,1),0) фололвинга .

Я добавил IFERROR , потому что в моих данных не всегда есть растянутые данные $T2 .

Затем я определил свой диапазон в диспетчере имен, используя:

=OFFSET(Sheet3!$M$8,0,0,MAX(Sheet3!$M$2:$T$2),COUNTA(Sheet3!$1:$1))

Это все еще работает, даже если между диапазонами есть пробелы.