2014-12-05 5 views
0

У меня есть две таблицы. Таблица A и таблица B.Проверка данных на основе LOOKUP

Таблица A имеет следующие три столбца: «Идентификатор атрибута», «Имя атрибута» и «Значение». Пример строки из таблицы А (разделенные, представляющий новую колонку):

  • "10000, Длина, 3M"
  • "10000, длина, 5M"
  • "10000, длина, 7M"
  • "20000, Глубина, 1,5M"
  • "20000, Глубина, 3M"
  • "20000, Глубина, 4,5m"

Таблица В имеет следующие три колонки: "Номер продукта", "Attribut ID" и "Value" Пример строки из таблицы B (запятой, представляющие новый столбец):

  • "38-500351, 10000, 3M"

Лист будет использоваться клиентами для ввода данных, поэтому я хочу сделать все максимально простым и максимально возможным, чтобы минимизировать ошибки. В настоящее время клиенты вводят значение «Value» в таблице B (3M в примере) вручную.

Моя цель состоит в том, чтобы изменить это на основе выпадающего списка или, по крайней мере, быть подтвержденным на основе таблицы A. Поэтому, если 10000 вводится как «Идентификатор атрибута» в таблице B, только «3M», «5M» и «7M» могут быть введены в качестве значений.

Я нашел это topic, который кажется очень похожим, но мне не удалось выяснить, как его использовать. Любая помощь приветствуется. Если возможно, предпочтительнее избегать VBA.

Я успешно адаптировал ответ Axcel. Вот модифицированный код, чтобы адаптировать его к моему листу:

=INDEX('Attribut værdier'!$C:$C;MATCH(INDIRECT("RC[-2]";FALSE);'Attribut værdier'!$A:$A;0)):INDEX('Attribut værdier'!$C:$C;MATCH(INDIRECT("RC[-2]";FALSE);'Attribut værdier'!$A:$A;1)) 

Я изменил «,» на «;» и ссылки на листы. Помимо этого, я не внес никаких изменений, и все работает.

+0

является таблица Отсортированный в порядке возрастания «Attribut ID» по-умолчанию? –

+0

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

+0

Я отредактировал код, основанный на комментариях Акселя, и теперь все происходит. :-) – Splurk

ответ

1

Предположим, что мы имеем ситуацию, как это: enter image description here

Обратите внимание, что Attribut ID в колонке А сортируется по возрастанию.

Создайте имя с именем «ValueList» с помощью Диспетчер имен, который относится к

=INDEX(Sheet1!$C:$C,MATCH(INDIRECT("RC[-1]",FALSE),Sheet1!$A:$A,0)):INDEX(Sheet1!$C:$C,MATCH(INDIRECT("RC[-1]",FALSE),Sheet1!$A:$A,1)) 

Как использовать Имя менеджера см https://support.office.com/en-us/article/Define-and-use-names-in-formulas-4d0f13ac-53b7-422e-afd2-abd7ff379c64?ui=en-US&rs=en-US&ad=US#bmmanage_names_by_using_the_name_manage

«RC [-1]» в косвенном должны быть соответственно изменилась языковая версия вашего Excel. Для немецкого Excel это должно быть «ZS (-1)».

Этот именованный диапазон будет динамически получать диапазон в столбце C от первого появления «Идентификатора атрибута» до последнего появления этого «Идентификатора атрибута» в столбце A. «Идентификатор атрибута» берется из ячейки слева ячейки, которой он назначен.

Затем вы можете использовать этот именованный диапазон в качестве источника для списка в Валидация данных (Source = ValueList) для выпадающие в колонке G.

+0

Спасибо за ваш ответ Axel. Я отредактировал свое сообщение, чтобы отразить ваше решение, но все равно получаю некоторые ошибки. Пожалуйста, см. Конец моего сообщения. – Splurk

+0

Вы не можете поместить формулу непосредственно в качестве источника для проверки данных. Вы должны создать имя «ValueList», которое ссылается на формулу, а затем использовать это как источник. –

+0

Извините, если я не сделал это ясно. Я создал имя ValueList, на которое ссылается проверка данных – Splurk