Расчет на основе зависимого раскрывающегося списка с использованием двух источников

Я пытаюсь создать инструмент, который будет принимать количество, которое кто-то ввел, и значение для количества, а затем умножать эти два. Значения для этих типов (иначе размеры) размещены в таблицах на отдельных листах. Мне нужна помощь в создании формулы в ColG на входном листе. Для простоты я не создал проверку данных для ColD и ColE, но они будут там.

Для ясности, colE на входном листе перечисляет числа, но, по сути, это просто метки. С тем же успехом это могут быть Большие, Средние, Маленькие, Синие, Зеленые и так далее.

Вот пример входного листа:

Вот источник данных a. Обратите внимание: столбцы A: C — это одна таблица, а E: J — другая таблица, в которой строка заголовка заполнена A2: A:

Вот источник b: Cols A: B - это одна таблица, а D: I - в другой таблице, а строка заголовка заполнена A2: A.

Вот ссылка на образец документа — я был бы очень рад, если бы кто-нибудь мог рассказать мне о формуле, которую они используют. Я не уверен, какие формулы использовать здесь, и хотел бы посмотреть некоторые учебные пособия после получения помощи, поэтому, надеюсь, я смогу сделать это сам в будущем.

Обновлено: я обновил лист, чтобы формула @Twilight теперь находилась на входе G2 и G3. Пытаюсь получить формулу массива в G1

https://docs.google.com/spreadsheets/d/1Ex5kMzHIvp6tQfsC1HIw4Vq7f1uc1Ovr9IfJQHXBw5k/edit#gid=2100307022

Не могли бы вы уточнить, как вы получаете значение 160.0? Разве строка Type A не должна соответствовать столбцу Type A в источнике B, который равен 285,6?

Twilight 21.02.2023 01:21

На входном листе я выбрал тип B и размер 10x8. Это соответствует H2. источники данных имеют две таблицы с каждым листом. Используя soucre b в качестве примера — столбец G, H, I автоматически извлекается из столбца A2: A. Всякий раз, когда добавляется новый тип, в эту таблицу добавляется новый столбец.

InStackOfHelp 21.02.2023 02:30
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пытаться:

=IF(REGEXMATCH(A2,"[0-9]"),INDIRECT("'Source A'!"&ADDRESS(MATCH(B2,'Source A'!E:E,0),MATCH(A2,'Source A'!$1:$1,0),4)),INDIRECT("'Source B'!"&ADDRESS(MATCH(B2,'Source B'!F:F,0),MATCH(A2,'Source B'!$1:$1,0),4)))*C2

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

Обратите внимание, что заголовок, который у вас есть в источнике A или B, должен точно совпадать с входным листом столбца A.

Результат:

Ссылка:

большое спасибо. это определенно делает то, что я хочу. Поля A и B будут проверяться из диапазонов, чтобы облегчить проблему, с которой вы столкнулись при форматировании. Не могли бы вы понять, что я делаю неправильно при преобразовании этого в массив? = {"Output";ARRAYFORMULA(IF(REGEXMATCH(A2:A,"[0-9]"),INDIRECT‌​("'Source A'!"&ADDRESS(MATCH(B2:B,'Source A'!E:E,0),MATCH(A2:A,'Source A'!$1:$1,0),4)),INDIRECT("'Source B'!"&ADDRESS(MATCH(B2:B,'Source B'!F:F,0),MATCH(A2:A,'Source B'!$1:$1,0),4)))*C2:C)}

InStackOfHelp 21.02.2023 04:21

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

InStackOfHelp 21.02.2023 06:06

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

Twilight 22.02.2023 04:08

понял и спасибо. я оставлю его открытым, если у кого-то еще есть какие-либо идеи.

InStackOfHelp 22.02.2023 06:25

@ Мартин, возможно, вы знаете, как превратить это в формулу массива? Я знаю, что косвенное не работает, но не знаю, как его настроить.

InStackOfHelp 22.02.2023 06:26

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