Я просматривал этот сайт на протяжении последних двух классов программирования и решил, что стоит присоединиться к этому сказочному сообществу!Поиск массива 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 в ячейке.
Большое спасибо за помощь!