каскадный поиск xls на основе источника данных в стиле сводной таблицы? - PullRequest
0 голосов
/ 24 марта 2009

Предполагается, что набор данных выглядит как

Country Region  Product
UK  North   fdhlw46
UK  North   fdhlw47
UK  North   fdhlw48
UK  North   fdhlw49
UK  North   fdhlw50
UK  South   fdhlw51
UK  South   fdhlw52
UK  South   fdhlw53
UK  South   fdhlw54
UK  South   fdhlw55
UK  South   fdhlw56
UK  South   fdhlw57
UK  West    fdhlw58
UK  West    fdhlw59
UK  West    fdhlw60
UK  London  fdhlw61
UK  London  fdhlw62
USA New York    fdhlw63
USA New York    fdhlw64
USA New York    fdhlw65
USA New York    fdhlw66
USA Chicago fdhlw67
USA Chicago fdhlw68
USA Chicago fdhlw69
USA Chicago fdhlw70
USA LA  fdhlw71
USA LA  fdhlw72
USA LA  fdhlw73
USA LA  fdhlw74
USA LA  fdhlw75

Как получить каскадные выпадающие списки / списки выбора в Excel, где пользователи выбирают страну, которая затем сужается до региона и, наконец, продукта?

Пока все, что у меня есть, это диапазон, называемый «страна», который я могу затем «данные - проверка - источник: = страна», но это дает мне только первое значение и не удаляет дубликаты

Ответы [ 3 ]

1 голос
/ 24 марта 2009

http://www.contextures.com/xlDataVal13.html

Этот подход означает определение уникального набора значений для каждой группировки, но это тривиально.

Спасибо за другие идеи.

0 голосов
/ 24 марта 2009

Я думаю, что вы хотите использовать функцию INDIRECT для поиска значения ячейки, а не определять диапазон поиска непосредственно в проверке данных. Взгляните на эту страницу , которая довольно хорошо это объясняет.

Имейте в виду, что подобные каскадные проверки имеют свои собственные проблемы. В основном, если вы сделаете второй (или третий и т. Д.) Выбор, а затем вернетесь и отредактируете первый выбор, автоматического флажка, указывающего на то, что выбор теперь может быть недействительным, нет. Например, если у вас есть следующее:

Type        Detail
Fruit       Apple

... а затем измените первый столбец:

Type        Detail
Vegetable   Apple

... тогда у вас сейчас может быть проблема. Поиск таких несоответствий может быть очень трудным или требует некоторого кода для выделения / исправления. В блоге DDoE показан один метод выделения таких ошибок с использованием условного форматирования, но это очень сложный расчет и плохо масштабируется.

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

В целом, для небольшого проекта, где ввод данных строго контролируется, это гибкий метод каскадных выпадающих списков, но если у вас мало контроля над пользователями или если объем собранных данных превысит несколько сотен строк тогда вы, вероятно, захотите взглянуть на валидацию (!) с помощью VBA или на прохождение всей процедуры и принудительное выполнение ввода через пользовательскую форму, что на данный момент является лучшим вариантом.

Редактировать: Пример рабочей книги

Снова отредактируйте: если данные обязательно должны оставаться такими, как есть, то потребуется расширенный фильтр, который создает именованные диапазоны, используемые при проверке. На этом уровне сложности вам, безусловно, будет лучше, если использовать форму для ввода данных.

0 голосов
/ 24 марта 2009

Выберите диапазон, затем Данные -> Фильтр -> Автофильтр. Достигает ли это того, что вы ищете?

...