В конце концов, это было невозможно через именованный диапазон; Я закончил тем, что выполнил вариант зависимых выпадающих меню со смещениями, а также двумя пивотами, на основе страницы блога из комментария Даррена выше, а также этой ссылки . Может быть, излишне, но, по крайней мере, я знаю, как я к этому добился.
Настройка первого раскрывающегося источника данных и проверка данных для раскрывающегося списка
Для первого списка я создал сводную таблицу из раскрывающегося источника данных со строкой столбца «Тип» и значениями счетчика «Тип» (значения не так уж важны, но я нашел, что это полезно просто знать, какие элементы следует ожидать для последующих зависимых элементов). Этот свод находится в стандартном расположении поворота по умолчанию на новом листе, где строка заголовка начинается на A3. Использование сводки также сортирует ее по умолчанию в алфавитном порядке (что я хотел). Поворот всех итоговых столбцов.
Затем я создал именованный диапазон ("costCategory") со следующей формулой:
=OFFSET('PivotSheet'!$A$4,0,0,COUNTA('PivotSheet'!$A$4:$A$100),1)
Это в основном составляет список предметов и удаляет все пробелы. Это не так динамично, как хотелось бы, но я думаю, что я вряд ли когда-нибудь выйду за пределы ~ 100 пунктов в списке, поэтому я решил с этим смириться.
Я создал еще один именованный диапазон ("emptyList") со следующей формулой:
={""}
Чтобы я мог также заблокировать первый раскрывающийся список, если выбран второй, зависимый (для предотвращения странных проблем с несоответствием данных).
Для строк таблицы, которые нуждались в раскрывающихся списках, я включил проверку данных для списка по следующей формуле:
=IF(ISBLANK($B3),costCategory,emptyList)
, где $ B3 - второе зависимое расположение раскрывающегося списка.
Настройка второго, зависимого раскрывающегося источника данных и проверка данных
5. Я создал еще одну сводную точку из того же источника данных со строками «Тип» и «Desc» и значениями счетчика «Тип» (опять же, значения не имеют большого значения). Макет сводки был задан как табличный, с повторяющимися надписями, без итогов или промежуточных итогов. Я поставил этот круг рядом с другим, первая строка заголовка начинается с E3. Это также альфа-сортировки.
Я вставил вспомогательные столбцы, чтобы определить, где начинается список для конкретного родителя зависимого раскрывающегося списка, и количество строк в этом списке. Он использует тот же подход произвольных длинных диапазонов, что и в первом раскрывающемся списке - просто поместите количество строк, которые вряд ли будут превышены в сводной области. В столбце C для получения первой строки, где начинаются зависимые данные, я поместил эту формулу:
=ROW(INDEX('PivotSheet'!$F$4:$F$200,MATCH($A3,'PivotSheet'!$E$4:$E$200,0)))
В столбце D для получения количества столбцов, в которых есть зависимые данные, я поместил эту формулу:
=(LOOKUP(2,1/('PivotSheet'!$E$4:$E$200=$A3),ROW('PivotSheet'!$F$4:$F$200))-ROW(INDEX('PivotSheet'!$F$4:$F$200,MATCH($A3,'PivotSheet'!$E$4:$E$200,0))))+1
Наконец, в столбце с зависимым раскрывающимся списком (столбец B) я использовал следующее правило проверки данных:
=OFFSET('PivotSheet'!$F$1,$C3-1,0,$D3,1)
Который в основном использует диапазон, найденный в вспомогательных столбцах, для создания выпадающего списка.
Когда эти формулы расширяются, они увеличиваются (от A3 до A4, от B3 до B4 и т. Д.), Так что все они продолжают работать, даже когда вы добавляете строки в таблицу списков объектов.