Умножение строк в Excel: все способы от А до Я (с примерами)

Введение: почему умножение строк — не очевидная задача

На первый взгляд, умножение строк в Microsoft Excel кажется тривиальной операцией: взял две ячейки, перемножил — готово. Но на практике пользователи сталкиваются с массой подводных камней. Во-первых, Excel не поддерживает прямое умножение текстовых строк (в отличие от чисел). Во-вторых, даже при работе с числовыми данными результат умножения строки на строку часто требует предварительной обработки. В-третьих, задачи бывают разные: кому-то нужно перемножить A1:A10 на одно число, а кому-то — выполнить покомпонентное умножение двух массивов.

Эта статья закрывает все возможные сценарии: от базовых формул для новичков до продвинутых техник с Power Query и LAMBDA. Мы разберём не только как умножить строки, но и как избежать типичных ошибок (например, #VALUE! при работе с текстом), как оптимизировать вычисления для больших массивов данных, и почему иногда проще использовать VBA, чем изощряться с формулами. Если вы ищете конкретный метод — воспользуйтесь оглавлением. Если только начинаете осваивать Excel — читайте по порядку: от простого к сложному.

1. Умножение числовых строк: базовые формулы

Самый распространённый случай — когда у вас есть столбец чисел (например, A1:A10), и вы хотите умножить каждое значение на фиксированный коэффициент (например, налоговую ставку 1.2 или курс валюты). Здесь всё просто: используйте относительные ссылки.

Допустим, коэффициент записан в ячейке B1, а числа — в диапазоне A1:A10. В ячейке C1 введите формулу:

=A1*$B$1

И растяните её на весь столбец C. Знак $ фиксирует ссылку на B1, чтобы при копировании формулы коэффициент не "съезжал" на B2, B3 и так далее.

  • 📌 Для умножения двух столбцов покомпонентно (например, A1*A2, B1*B2 и т.д.) используйте формулу =A1*B1 и растяните её вниз.
  • 🔄 Для умножения строки на строку с результатом в одной ячейке (скалярное произведение) подходит функция SUMPRODUCT (см. следующий раздел).
  • Быстрый способ: выделите диапазон с числами, нажмите Ctrl+C, затем правой кнопкой выберите "Специальная вставка" → "Умножить".

2. SUMPRODUCT: умножение строк с суммированием результатов

Функция SUMPRODUCT — это швейцарский нож для работы с массивами в Excel. Она позволяет перемножить два (или более) диапазона покомпонентно и вернуть сумму произведений. Синтаксис:

=SUMPRODUCT(массив1; массив2; ...)

Пример: если в A1:A3 записаны цены товаров (100, 200, 300), а в B1:B3 — количества (2, 3, 1), то формула =SUMPRODUCT(A1:A3; B1:B3) вернёт 100*2 + 200*3 + 300*1 = 1100 — общую стоимость заказа.

Цена (A)Количество (B)ФормулаРезультат
1002=SUMPRODUCT(A1:A3; B1:B3)1100
2003=A1*B1 + A2*B2 + A3*B31100
3001=MMULT(A1:A3; B1:B3)#VALUE!

Критическое отличие SUMPRODUCT от MMULT: первая функция работает с одномерными массивами (строки/столбцы), а вторая требует матрицы с одинаковым числом столбцов в первом массиве и строк во втором. Если вам нужно именно матричное умножение, читайте раздел 5.

⚠️ Внимание: SUMPRODUCT игнорирует текстовые значения в массивах, но возвращает ошибку #VALUE!, если диапазоны имеют разный размер. Всегда проверяйте, что количество строк/столбцов в аргументах совпадает.

3. Умножение строк с условиями (IF, FILTER, LET)

Часто требуется умножить только те значения, которые удовлетворяют определённому условию. Например, применить скидку только к товарам категории "Электроника". Здесь помогут комбинации функций:

  • 🔹 Для Excel 2019 и старше:
    =SUMPRODUCT(A1:A10; B1:B10; --(C1:C10="Электроника"))

    Здесь C1:C10 — столбец с категориями, а двойной минус (--) преобразует логические значения в 1/0.

  • 🔹 Для Excel 365 (динамические массивы):
    =SUM(FILTER(A1:A10; C1:C10="Электроника") * FILTER(B1:B10; C1:C10="Электроника"))
  • 🔹 Классический подход (работает везде):
    =SUMIF(C1:C10; "Электроника"; A1:A10 * B1:B10)
    Но! В этом случае придётся добавить вспомогательный столбец с произведениями A*B.

Если условий несколько (например, категория "Электроника" И цена > 1000), используйте:

=SUMPRODUCT(A1:A10; B1:B10; --(C1:C10="Электроника"); --(A1:A10>1000))

Убедитесь, что диапазоны одинакового размера|Проверьте регистр текста в условиях (Excel чувствителен к "электроника" vs "Электроника")|Используйте абсолютные ссылки ($A$1) для фиксированных критериев|Тестируйте формулу на небольшом диапазоне перед применением ко всему столбцу-->

4. Умножение текстовых строк: обходные пути

Excel не поддерживает прямое умножение текста, но есть несколько способов повторить строку заданное число раз (что часто путают с умножением). Например, если в A1 записано "Hello", а вам нужно получить "HelloHelloHello" (3 повторения).

  • 🔤 Функция REPT:
    =REPT(A1; 3)

    Повторит текст из A1 3 раза. Ограничение: результат не может превышать 32767 символов.

  • 🔤 Конкатенация с TEXTJOIN (Excel 2019+):
    =TEXTJOIN("", TRUE, REPT(A1, 3))

    Полезно, если нужно объединить несколько повторённых строк с разделителем.

  • 🔤 VBA для сложных случаев:
    Код VBA для умножения текста с разделителем

    Function MultiplyText(txt As String, multiplier As Integer, Optional delimiter As String = "") As String
    

    Dim result As String

    Dim i As Integer

    For i = 1 To multiplier

    If i > 1 Then result = result & delimiter

    result = result & txt

    Next i

    MultiplyText = result

    End Function

    Использование: =MultiplyText(A1; 3; " ") вернёт "Hello Hello Hello".

⚠️ Внимание: Функция REPT не работает с числами — она преобразует их в текст. Если вам нужно повторить число как числовое значение (например, для дальнейших вычислений), сначала используйте =REPT(A1 & ""; 3), а затем преобразуйте результат обратно в число с помощью VALUE.
📊 Какой метод умножения строк вы используете чаще?
Формулы (SUMPRODUCT, MMULT)
Специальная вставка (Умножить)
Power Query
VBA
Другой

5. Матричное умножение строк (MMULT и LAMBDA)

Если вам нужно перемножить две строки как векторы (скалярное произведение) или выполнить матричное умножение, используйте функцию MMULT. Она работает только с числовыми массивами и требует, чтобы число столбцов первого массива совпадало с числом строк второго.

Пример: умножим строку {1, 2, 3} (диапазон A1:C1) на столбец {4; 5; 6} (диапазон A2:A4). Формула:

=MMULT(A1:C1; A2:A4)

Результат: 1*4 + 2*5 + 3*6 = 32.

Для более сложных операций (например, умножение строки на матрицу) в Excel 365 можно использовать LAMBDA:

=LET(

row; A1:C1;

matrix; A2:C4;

result; MAKEARRAY(COLUMNS(matrix); 1; LAMBDA(r; c; SUMPRODUCT(row; INDEX(matrix;; c))));

result

)

Строка (A1:C1)123
Матрица (A2:C4)456
Строка 1456
Строка 2789
Результат323844

6. Умножение строк в Power Query

Для обработки больших объёмов данных (тысячи строк) формулы Excel могут тормозить. В этом случае эффективнее использовать Power Query (доступен в Excel 2016+ как "Получить и преобразовать данные").

Алгоритм действий:

  1. Выделите исходные данные и нажмите Данные → Получить данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте настраиваемый столбец (Добавить столбец → Настраиваемый столбец).
  3. Введите формулу умножения, например:
    [Цена] * [Количество]

    или с условием:

    if [Категория] = "Электроника" then [Цена] * 0.9 else [Цена]
  4. Нажмите Закрыть и загрузить, чтобы вернуть результат в Excel.

Преимущества Power Query:

  • ⚡ Обрабатывает миллионы строк без тормозов.
  • 🔄 Легко обновляется при изменении исходных данных.
  • 📊 Позволяет комбинировать умножение с другими преобразованиями (фильтрация, группировка).
⚠️ Внимание: Power Query не поддерживает матричные операции (типа MMULT). Для таких задач используйте формулы или VBA.

7. Типичные ошибки и как их избежать

Даже опытные пользователи Excel допускают ошибки при умножении строк. Вот самые распространённые:

  • 🚫 #VALUE! при умножении текста на число:

    Решение: используйте VALUE для преобразования текста в число или проверьте формат ячеек (Числовой, а не Текстовый).

  • 🚫 Неправильный результат из-за абсолютных ссылок:

    Если вы фиксировали ссылку на коэффициент ($B$1), но забыли растянуть формулу на весь столбец, часть данных останется неумноженной.

  • 🚫 Ошибки округления:

    При умножении дробных чисел (например, валютных курсов) используйте ROUND:

    =ROUND(A1*B1; 2)
  • 🚫 Переполнение при REPT:

    Если результат превышает 32767 символов, разбейте задачу на части или используйте VBA.

Чтобы проверить формулу на ошибки:

  1. Выделите ячейку с формулой и нажмите F9 (в режиме редактирования) — Excel покажет промежуточные результаты.
  2. Используйте Формулы → Зависимости формул → Вычислить формулу для пошаговой отладки.

FAQ: Ответы на частые вопросы

Можно ли умножить строку на строку без формул?

Да, с помощью специальной вставки:

  1. Запишите коэффициент умножения в пустую ячейку (например, D1).
  2. Скопируйте её (Ctrl+C).
  3. Выделите диапазон чисел, которые нужно умножить.
  4. Правой кнопкой выберите "Специальная вставка" → "Умножить".

Минус метода: результат заменяет исходные данные (не сохраняется история).

Как умножить каждую вторую строку в столбце?

Используйте формулу с проверкой чётности строки:

=IF(MOD(ROW(); 2)=0; A1*2; A1)

Или для динамических массивов (Excel 365):

=LET(

data; A1:A10;

multiplier; 2;

IF(MOD(ROW(data); 2)=0; data*multiplier; data)

)

Почему SUMPRODUCT возвращает 0, хотя данные есть?

Вероятные причины:

  • В диапазонах есть текстовые значения (они воспринимаются как 0).
  • Условие в формуле не выполняется ни для одной строки (например, --(C1:C10="Несуществующая категория")).
  • Диапазоны имеют разный размер (например, A1:A10 и B1:B9).

Проверьте каждый аргумент отдельно с помощью F9.

Как умножить строки в Google Sheets?

Принципы те же, но есть нюансы:

  • SUMPRODUCT работает аналогично, но поддерживает до 30 аргументов (против 255 в Excel).
  • Для матричного умножения используйте MMULT, но в Google Sheets она требует явного указания размеров массивов.
  • Функция ARRAYFORMULA заменяет массивы Excel 365:
    =ARRAYFORMULA(A1:A10 * B1:B10)
Можно ли умножить строки с датами?

Да, но даты в Excel хранятся как числа (количество дней с 1.01.1900). При умножении даты на число вы получите новое число, которое Excel может отобразить как дату. Примеры:

  • =A1*2 — удвоит количество дней (например, "01.01.2023" станет "02.01.1900" + 2 дня).
  • =DATE(YEAR(A1); MONTH(A1)*2; DAY(A1)) — удвоит месяц (но вернёт ошибку, если результат >12).

Для корректной работы с датами используйте функции DATE, EDATE или DATEDIF.