Как заставить ячейку Excel принимать значение из другого листа, если есть контент

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

Заказы на предметы

Стоимость предметов

Я хочу, чтобы в столбце стоимости автоматически указывалась общая стоимость товаров.

Я думаю, мне нужно присвоить каждому из 4 столбцов значение на основе второго листа (так свяжите их?), А затем сообщить столбцу затрат, что, если в этих строках есть значение, сложите их вместе.

Это более чем вероятно то, о чем рассказывалось много раз, но я немного новичок в формулах Excel, и если у кого-то есть предложения, они будут очень приветствоваться.


person J4G    schedule 24.10.2014    source источник


Ответы (1)


Я предполагаю, что A1 на Sheet1 - это куртка. Я также предполагаю, что потенциальные значения будут только одного размера, и что не может быть случая, когда, например, было бы 2 рубашки в одном заказе.

Если ваш формат (элементы, затраты) статичен, тогда это должно работать нормально в F2, а затем заполните формулу.

=SUM(IF(ISBLANK(A2), 0, Sheet2!$B$2), IF(ISBLANK(B2), 0, Sheet2!$B$3), IF(ISBLANK(C2), 0, Sheet2!$B$4), IF(ISBLANK(D2), 0, Sheet2!$B$5))

Объяснение: Формула СУММ просто складывает кучу чисел. В нашем случае каждое из этих чисел проверяет, пуста ли ячейка. Если ячейка пуста, в качестве этого числа используется 0. Если ячейка не пуста, она ищет стоимость на Листе 2. $ защищает значения от изменения при заполнении последовательности.

Ограничения:

  • Если стоимость элемента на листе 2 когда-либо изменится, это изменит все затраты на листе 1, а не только новые заказы. Если вы когда-нибудь захотите обойти это, вы можете «зафиксировать» значения, скопировав ячейки в столбце «Стоимость» для всех текущих заказов, а затем выполнив команду «Вставить значения».

  • Если вы вставите новый столбец на Лист1 в любом месте перед Шортами или новую строку на Лист2 в любом месте перед Шортами, это нарушит логику, и ваши итоговые суммы затрат будут неправильными. Если вам когда-нибудь понадобится добавить новый элемент затрат, обязательно добавьте его в конец и добавьте новый IF(ISBLANK()) в формулу.

Альтернативный вид той же формулы для ясности:

=SUM(
IF(ISBLANK(A2), 0, Sheet2!$B$2),
IF(ISBLANK(B2), 0, Sheet2!$B$3),
IF(ISBLANK(C2), 0, Sheet2!$B$4),
IF(ISBLANK(D2), 0, Sheet2!$B$5))
person Omnipresence    schedule 24.10.2014
comment
Это отличное предложение и именно то, что я ищу, однако я получаю сообщение об ошибке, потому что операторы if должны иметь 2-3 if, а у этого - 4. Знаете ли вы, есть ли обходной путь? - person J4G; 24.10.2014
comment
Оператору If требуется оператор для оценки (это ISBLANK), значение, если оно истинно (то есть 0), и (необязательно) значение, если оно ложно. У меня были сдвинуты некоторые буквы (проверял Polo на Paid вместо Jacket to Shorts). Я отредактировал свой ответ. Извини за это. Однако это может не объяснить вашу ошибку. Убедитесь, что вы скопировали всю строку, заканчивающуюся на)) - person Omnipresence; 24.10.2014
comment
Спасибо за поправки. Я обновил формулу в своем листе, но он сообщает мне об ошибке синтаксического анализа. Будет ли это работать и в Google Таблицах? Мой код выглядит следующим образом: = SUM (IF (ISBLANK (D4), 0, Costs! $ B% 2), IF (ISBLANK (E4), 0, Costs! $ B $ 3), IF (ISBLANK (F4), 0 , Затраты! $ 4 млрд.), ЕСЛИ (ISBLANK (G4), 0, Costs! $ 5 млрд.)) - person J4G; 24.10.2014
comment
Я вижу, что в вашем первом операторе IF у вас есть $ B% 2 вместо $ B $ 2. Скорее всего, проблема. Я полагаю, «Затраты» - это название листа с ценами? - person Omnipresence; 24.10.2014
comment
Да, и отвечая на ваш другой вопрос, эти функции также должны работать в Google Таблицах. - person Omnipresence; 24.10.2014