Создайте динамический счет-фактуру на продукцию в Excel

Создайте динамический счет-фактуру на продукцию в Excel

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

На одном листе моей рабочей тетради у меня есть все разные таблицы, которые определяют магазины, продукты и то, какие продукты продает каждый магазин (перекрестные записи между двумя). В моем примере "Corner Market" продает: все 4 продукта, но "Tim's Hardware" продает только шайбы 1/2" и наборы сверл.

Я хотел бы генерировать динамическую таблицу, как в N5 и N23 на связанном снимке экрана, всякий раз, когда пользователь выбирает нужный магазин (N3 и N21). Таким образом, таблица должна меняться по мере изменения значения «Название магазина». (Я заинтересован только в создании одного счета, но включил два на снимке экрана в качестве примера.) Затем пользователь может ввести значения количества для генерации цены каждой позиции и общей суммы счета.

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

Скриншот:https://i.stack.imgur.com/ICZDW.png

Любая помощь приветствуется. Спасибо заранее!

решение1

Вы можете добавить 3 таблицы в модель данных Power Pivot.

Но обратите внимание, что Power Pivot можно найти в продуктах Office, упомянутых в разделе «Где находится Power Pivot?'. Отношения между ними следующие:

введите описание изображения здесь

TheИдентификатор магазинав таблице 2 иКод товарав таблице 3 представлены поля первичного ключа.

Затем вы можете создать таблицу Power Pivot.

введите описание изображения здесь

TheНазвание магазинаможет быть полем фильтра. Product Name может быть полем строки, а Unit Price может быть полем значения.

Но столбцы «Количество» и «Цена» можно записать в следующие столбцы.

Под заголовком Цена вы можете ввести формулу =IF(P12="","",GETPIVOTDATA("[Measures].[Sum of Unit Price]",$N$11,"[Table3].[Product Name]","[Table3].[Product Name].&[1/2"" Washer]")*P12), пожалуйста, перетащите формулу вниз, чтобы охватить достаточно большой диапазон данных. Например, я выбираю диапазон отВ12:В21чтобы получить значения цен. ЧастьGETPIVOTDATA("[Измерения].[Сумма цены за единицу]",$N$11,"[Таблица3].[Название продукта]","[Таблица3].[Название продукта].&[1/2"" Шайба]")вместо этого можно использовать мышь для выбора O12.

Для расчета итоговой суммы можно ввести формулу =IF(SUM(Q12:Q21)>0,SUM(Q12:Q21),"").

введите описание изображения здесь

Связанный контент