Страницы: 1
RSS
Как умножать значения в ячейках, где установлен прочерк "-"?
 
Здравствуйте, коллеги!

Прикладываю файл "Тире.xlsx". Работаю в Excel 2021.
Есть 6 столбцов данных (1.1, 1.2, 2.1, 2.2, 3.1, 3.2) с численными значениями или прочерком "-".
Есть столбец "∑", где мне нужно видеть вычисления значений в ячейках соответствующих столбцов:
=1.1*1.2+2.1*2.2+3.1*3.2 (если в ячейке стоит прочерк, то нужно игнорировать произведение со значением в этой ячейке).
Если реализовать это формулой (см. ячейку G2):
=A2*B2+C2*D2+E2*F2, то результат будет #ЗНАЧ!
Если реализовать это формулой (см. ячейки G3, G4):
=СУММ(ЕСЛИОШИБКА(A3*B3;0);ЕСЛИОШИБКА(C3*D3;0);ЕСЛИОШИБКА(E3*F3;0)), то получится корректный результат.
В виду того, что таких столбцов данных может быть много, то формула получается очень объёмной. Есть ли более рациональные способы, как это можно реализовать?

Примечания:
1. В незаполненных ячейках нужны именно "-", а не "0".
2. Заметил, что формула:
=A2+C2+E2 будет выдавать #ЗНАЧ!
=СУММ(A2;C2;E2) будет выдавать корректный результат, игнорируя ячейки с "-"
=СУММ(A2*B2;C2*D2;E2*F2) будет выдавать #ЗНАЧ!
 
Добрый день!
Код
=СУММПРОИЗВ(A2:F2;B2:G2;Ч(ПРАВСИМВ($A$1:$F$1)="1"))
 
Самый простой способ, без изысков
=SUM(A2)*SUM(B2)+SUM(C2)*SUM(D2)+SUM(E2)*SUM(F2)
По вопросам из тем форума, личку не читаю.
 
Здравствуйте.
1) Использовать какой-нибудь формат, например: 0,00;-0,00;-
2) Формула (массив):
Код
=СУММ(ЕСЛИОШИБКА(A2:E2*B2:F2*ЕЧЁТН(СТОЛБЕЦ(A2:E2)-СТОЛБЕЦ($A$2));0))
 
=SUM(IFERROR((A2:F2*B2:G2),))
=SUMPRODUCT(N(+A2:E2)*N(+B2:F2)*(MOD(COLUMN(A2:E2)-1;2)=0))
Изменено: memo - 26.05.2024 21:27:45 (исправил)
 
memo, третья строка !
По вопросам из тем форума, личку не читаю.
 
Да, не вник сходу.
Update: Отредактировал пост выше. Добавил раб. вариант.
Изменено: memo - 26.05.2024 21:29:06
 
Цитата
написал:
=СУММПРОИЗВ(A2:F2;B2:G2;Ч(ПРАВСИМВ($A$1:$F$1)="1"))
Цитата
написал:
=SUM(A2)*SUM(B2)+SUM(C2)*SUM(D2)+SUM(E2)*SUM(F2)
Цитата
написал:
=СУММ(ЕСЛИОШИБКА(A2:E2*B2:F2*ЕЧЁТН(СТОЛБЕЦ(A2:E2)-СТОЛБЕЦ($A$2));0))
Спасибо за предложенные варианты!

В голову пришла ещё одна мысль:
Код
=СУММПРОИЗВ({A2;C2;E2};{B2;D2;F2})
Эта формула нерабочая. Но может есть способ, как оформить её правильно, указав вручную 2 массива ячеек?
 
Цитата
vladikpapa написал:
Эта формула нерабочая.
=SUMPRODUCT(INDEX(A2:F2;N(INDEX({1;3;5};)));INDEX(A2:F2;N(INDEX({2;4;6};))))
=SUMPRODUCT(CHOOSE({1;2;3};A2;C2;E2);CHOOSE({1;2;3};B2;D2;F2))
По вопросам из тем форума, личку не читаю.
 
Спасибо за все предложенные варианты! Было познавательно - открыл для себя, благодаря вам, новые функции.
В итоге из 5-ти вариантов выбрал и уже взял в работу:
Цитата
написал:
=СУММПРОИЗВ(A2:F2;B2:G2;Ч(ПРАВСИМВ($A$1:$F$1)="1"))
по критериям:
* самый короткий по написанию;
* работает с диапазоном, что удобно, если столбцы будут добавляться.
Изменено: vladikpapa - 27.05.2024 16:17:31
 
Как вариант для этого примера в том же духе
=СУММПРОИЗВ(A2:E2;B2:F2;2-ПРАВБ(A$1:E$1))
в более общем случае
=-СУММПРОИЗВ(A2:E2;B2:F2;-ЕНЕЧЁТ(СТОЛБЕЦ(A$1:E$1)))
по проще
=Ч(A2)*Ч(B2)+Ч(C2)*Ч(D2)+Ч(E2)*Ч(F2)
или
=ПРОИЗВЕД(A2:B2)+ПРОИЗВЕД(C2:D2)+ПРОИЗВЕД(E2:F2)
баловства ради (летучая)
=СУММ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(6;СМЕЩ(A2:B2;;{0:2:4})))
 
Цитата
vladikpapa написал:
* самый короткий по написанию;
но операется на шапку, что и хорошо и плохо
для старых версий, где нет ЕНЕЧЁТ аналогом
Цитата
Павел \Ʌ/ написал:
=-СУММПРОИЗВ(A2:E2;B2:F2;-ЕНЕЧЁТ(СТОЛБЕЦ(A$1:E$1)))
будет

=SUMPRODUCT(A2:E2;B2:F2;MOD(COLUMN(A2:E2);2))

В принципе это то что хотел сказать
Цитата
memo написал:
=SUMPRODUCT(N(+A2:E2)*N(+B2:F2)*(MOD(COLUMN(A2:E2)-1;2)=0))
но как то видимо запутался.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
но как то видимо запутался.
Не запутался. Показал конструкцию с мат. умножением, чтобы ее можно было выделить и по F9 посмотреть результат "под капотом".
 
Цитата
memo написал:
Показал конструкцию с мат. умножением,
я про эту часть писал
Цитата
memo написал:
(MOD(COLUMN(A2:E2)-1;2)=0)
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
я про эту часть писал
Да, это лишнее.
Страницы: 1
Наверх