2014-11-26 3 views
0

Я просматривал этот сайт на протяжении последних двух классов программирования и решил, что стоит присоединиться к этому сказочному сообществу!Поиск массива 2D Excel для значения, возвращающего значение смежной ячейки

Вкратце, я хочу создать «создатель счета», который позволяет сначала выбрать категорию через раскрывающийся список в A1, а затем элемент в этой категории с выпадающим списком в B1. Затем Excel будет автозаполнять цену в следующем столбце C1.

По существу 2 (не уверен, что назвать это: каскадные, вложенные, зависимые) выпадающие окна, которые при заполнении возвращают цену. Например:

A  B C 
1 Category Item [Price] 

Оба выпадающие используют Проверка данных со ссылкой на определенное имя, которое основано на массиве в листе «базы данных». Этот лист отформатирован следующим образом:

category1 price category2 price category3 price category4 price ... 
item1  $xx item1  $xx item1  $xx item1  $xx 
item2  $xx item2  $xx item2  $xx item2  $xx 

Я использовал это расположение столбца в основном потому, что она позволяет каждой категории, чтобы быть расширен до бесконечности. Если вы видите более простой способ, дайте мне знать!

По существу, чтобы распечатать цену в C1, моя цель - найти имя элемента в базе данных 2D Excel и вернуть ячейку сразу справа от нее. В идеале формула в C1 использовала бы ячейку A1 для определения категории для поиска и поиска в этом столбце для соответствующего имени элемента в B1. Затем он будет смещать +1 вправо, тем самым ссылаясь на цену.

Что касается формул, у меня есть грубый псевдокод, но я смущен между VLOOKUP, OFFSET, MATCH и INDEX. В принципе:

=INDEX("defined name of my entire database" , MATCH(B1, **column corresponding to chosen component** , 0) + 1 , MATCH(A1 , components , 0)) 

Способ, которым я вижу это, INDEX вернет значение строки + 1 элемента в данном столбце. Первый MATCH найдет строку, в которой элемент найден, а второй MATCH определит столбец, в котором находится категория.

Теперь мой вопрос: как сделать первый поиск MATCH ТОЛЬКО столбцом, который соответствует в нужную категорию?

Честно говоря, я понятия не имею, соответствует ли мой псевдокод. Я перевел его в Формулу, и он просто возвращает # N/A в ячейке.

Большое спасибо за помощь!

ответ

0

Я хотел бы попробовать следующий подход:

Возьмите первый столбец листа базы данных и смещение его так много столбцов направо, как искомая категория смещена влево. Тогда у нас есть столбец цены этой категории, потому что мы смещаем его 1 столбец, если он соответствует первой категории, 3, если он соответствует второй категории и так далее.

В этом столбце указывается значение из строки, которая совпадает с строкой в ​​найденном столбце offset-1 (столбец категории), который соответствует имени искомого элемента.

enter image description here

Смежные вопросы