2016-08-23 4 views
0

У меня есть следующая таблица в моей таблице:Excel: Динамический именованный диапазон - Last Non Text Значение

A    B C 
1 R1    1 2 
2 R2    2 3 
3 R3    4 5 
4 Grand Total 7 10 
5 0    0 0 
6 0    0 0 
7 0    0 0 

Я смотрю, чтобы создать 4 динамические именованные диапазоны, которые подберут данные в соответствующих колонках вплоть до него находит текст «Гранд Всего» в колонке А.

до сих пор я использовал

=OFFSET(Analysis!$A$1,0,0,MATCH("*",Analysis!$A:$A,-1),1) 

который возвращает A1: A4.

Мне нужно это, чтобы вернуть A1: A3. Мне также нужны именованные диапазоны, в этом примере, для возврата B1: B3, C1: C3 и т. Д. Они должны быть динамическими, чтобы, когда список расширяется до последней строки 6, он продолжает поиск Grand Total.

Заранее благодарим за любую помощь!

ответ

0

Я предложил бы использовать:

=INDEX(Analysis!$A:$A,1):INDEX(Analysis!$A:$A,Match("Grand Total", Analysis!$A:$A, 0)-1) 

Проблема со смещением является летучесть, что означает, что будет пересчитывать каждый раз, когда есть обновление.

EDIT: Добавлены $ для блокировки этих диапазонов по причинам ...

EDIT2: Изменена второй индекс совпадет из-за обновление от комментариев.

+0

Извините, только уточнил мой вопрос. В строках 5 далее, в этом примере, все ячейки содержат 0. Пробовал вашу формулу, но я думаю, что она не работает с нулями. –

+1

Попробуйте заменить COUNTA() - 1 на Match ("Grand Total", Analysis! $ A: $ A, 0) -1. Динамические диапазоны для B и C также будут использовать Match для столбца A. – Kevin

+1

Вы можете заменить первую функцию 'INDEX' на' $ A1', так как она всегда возвращает: '= $ A1: INDEX (Analysis! $ A: $ A, Match (" Grand Total ", Analysis! $ A: $ A, 0) -1) ' –