Примечание: пожалуйста, не VBA
Существует два списка проверки данных:
- Список 1 (B3) основан на любом элементе в строке 5: 5
- List2 (C3) зависит от "List 1". Его диапазон отображается в H3.
В качестве примера они были заселены машиной, самолетом и фруктами.
Пользователь может добавить больше элементов List1 и List2, и они будут доступны для выбора в B3 и C3.
![Sheet print](https://i.stack.imgur.com/FakWz.png)
Идея заключалась в том, чтобы использовать одно уравнение (см. H3), чтобы получить диапазон List2 на основе List1 =indirect("H3 equation")
в качестве уравнения списка для проверки данных. Но я не могу вставить уравнение H3 в список, возможно, из-за нехватки места.
Вопрос здесь заключается в том, как получить диапазон List2 более простым способом , позволяя пользователю добавлять больше элементов в List1 и List2 без необходимости создания какой-либо вспомогательной переменной именованного диапазона ( как описано здесь ). Просто добавьте предметы, и мы готовы.
Уравнения ячеек:
E3 - Начало поиска в List2. Поиск ячейки в 5: 5, которая соответствует выбранному элементу List1, добавляет +1 к получению начальной ячейки List2.
= ЯЧЕЙКА ( "адрес"; OFFSET (ИНДЕКС ($ 5: $ 5; 0; ПОИСКПОЗ (В3; $ 5: $ 5; 0)); 1; 0 ;;))
F3 - конец списка поиска. Найдите последнюю ячейку, содержащую любой текст "zzz" в строке, определенной в E3.
= АДРЕС (MATCH ("zzz"; НЕПОСРЕДСТВЕННЫЙ (MID (E3; 2; ПОИСК ("$"; АДРЕС (ROW (); COLUMN ()); 2) -2) & ":" & MID (E3; 2; ПОИСК ("$"; АДРЕС (ROW (); COLUMN ()); 2) -2))); COLUMN (НЕПОСРЕДСТВЕННЫЙ (MID (E3; 2; ПОИСК ("$"; АДРЕС (ROW (); КОЛОННА) ()); 2) -2) & ":" & MID (E3; 2; ПОИСК ("$"; АДРЕС (ROW (); COLUMN ()); 2) -2))); 1; 1)
G3 - Диапазон
* * = Тысяча сорок-девять Е3 & ":" & F3
H3. То же, что и результат G3, но в одной формуле - это уравнение огромного монстра
= ЯЧЕЙКА ( "адрес"; OFFSET (ИНДЕКС ($ 8: $ 8; 0; ПОИСКПОЗ (В3; $ 8: $ 8; 0)); 1; 0 ;;)) & ":" & АДРЕС (ПОИСКПОЗ ( "ZZZ" ; INDIRECT (MID (CELL ("адрес"; OFFSET (INDEX ($ 8: $ 8; 0; MATCH (B3; $ 8: $ 8; 0)); 1; 0 ;;)); 2; ПОИСК ("$"; АДРЕС (СТРОКА (); COLUMN ()); 2) -2) & ":" & MID (ЯЧЕЙКА ( "адрес"; OFFSET (ИНДЕКС ($ 8: $ 8; 0; ПОИСКПОЗ (В3; $ 8: $ 8; 0)); 1 ; 0 ;;)); 2; ПОИСК ("$"; АДРЕС (ROW (); COLUMN ()); 2) -2))); COLUMN (НЕПОСРЕДСТВЕННЫЙ (MID (CELL ("адрес"; OFFSET (INDEX ( $ 8: $ 8; 0; ПОИСКПОЗ (В3; $ 8: $ 8; 0)); 1; 0 ;;)); 2; ПОИСК ( "$"; АДРЕС (СТРОКА (); COLUMN ()); 2) -2) & ":" & MID (ЯЧЕЙКА ( "адрес"; OFFSET (INDEX ($ 8: $ 8; 0; ПОИСКПОЗ (В3; $ 8: $ 8; 0)); 1; 0 ;;)); 2; ПОИСК ( "$"; АДРЕС (ROW (); COLUMN ()); 2) -2))); 1; 1)