каскадный поиск xls на основе источника данных в стиле сводной таблицы?

StackOverflow https://stackoverflow.com/questions/676893

  •  21-08-2019
  •  | 
  •  

Вопрос

Предполагая, что набор данных выглядит следующим образом

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Type        Detail
Fruit       Apple

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

Type        Detail
Vegetable   Apple

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top