Страницы: 1
RSS
Умножение значений из столбца на значения в диагонали таблицы
 
Добрый день!
Есть столбец значений Входящие, есть матрица весов (отклик). Исходящие значения получаются умножением столбца на диагональ в матрице весов (см. пример).
Формулу для первых элементов внес, дальше она становится все более длинной. Полный размер данных: Входящее(500), матрица весов (500*100) - таблицу обрезал, т.к. превышала лимит файла.

Как упростить формулу?
В примере строка формул, требующая упрощения, выделена желтым (строка 129)
Для облегчения восприятия скрыл строки, но в формулах участвуют все строки!
 
VladimirVSh, черновой вариант на VBA. Функция возвращает массив, вводится в строку как формула массива.
Код
Function ishod(stolb As Range, matr As Range) As Double()
Dim s(), m(), i&, j&
  s = stolb.Value2
  m = matr.Value2
  ReDim d(1 To Application.Caller.Columns.Count) As Double
  For i = 1 To UBound(d)
    For j = 1 To i
      d(i) = d(i) + s(j, 1) * m(j, i - j + 1)
    Next
  Next
  ishod = d
End Function
 
Цитата
Казанский написал:
вариант на VBA
а есть способ средствами EXCEL это решить, без VBA?
у нас VBA не сильно приветствуется - крики антивирусов и т.п. проблемы )))
Изменено: VladimirVSh - 21.03.2018 16:46:41 (опечатка)
Страницы: 1
Наверх