Вот очень хороший способ справиться с этим (можно найти на ozgrid ):
Допустим, ваш список находится на Sheet2
, и вы хотите использовать Список проверки с автозаполнением на Sheet1
.
Вкл. Sheet1
A1
Введите =Sheet2!A1
и скопируйте, включая столько резервных строк, сколько необходимо (скажем, всего 300 строк). Скройте эти строки и используйте эту формулу в Ссылках: для динамического именованного диапазона с именем MyList:
=OFFSET(Sheet1!$A$1,0,0,MATCH("*",Sheet1!$A$1:$A$300,-1),1)
Теперь в ячейке, расположенной непосредственно под последней скрытой строкой, используйте проверку данных, а для источника списка - =MyList
[РЕДАКТИРОВАТЬ] Адаптированная версия для Excel 2007+ (хотя не могла протестировать в 2010 году, но AFAIK, нет ничего особенного для версии).
Допустим, ваш источник данных находится на Sheet2!A1:A300
, и давайте предположим, что ваш список проверки (он же autocomplete ) находится в ячейке Sheet1!A1
.
Создайте динамический именованный диапазон MyList
, который будет зависеть от значения ячейки, в которую вы положили проверку
=OFFSET(Sheet2!$A$1,MATCH(Sheet1!$A$1&"*",Sheet2!$A$1:$A$300,0)-1,0,COUNTA(Sheet2!$A:$A))
Добавить список проверки в ячейку Sheet1!A1
, которая будет ссылаться на список =MyList
Предостережения
Это не реальное автозаполнение, так как вы должны сначала ввести текст, а затем нажать на стрелку проверки: список затем начнет с первого соответствующего элемента вашего список
Список будет идти до конца ваших данных. Если вы хотите быть более точным (оставьте в списке только соответствующие элементы), вы можете изменить COUNTA
на SUMLPRODUCT
, который будет вычислять количество соответствующих элементов
Ваш список источников должен быть отсортирован