Будем использовать функции массивов. Для отбора элементов массива применим логическую функцию
ЕСЛИ (лог_выражение; значение_если_истина; значение_если_ложь)
Функции возвращает одно значение, если заданное условие при вычислении дает значение ИСТИНА, и другое значение, если ЛОЖЬ.
При накоплении суммы, в случае невыполнения условия функция должна возвращать 0, для произведения 1.
Введём на листе Excel матрицу, строку над матрицей заполним номерами столбцов, столбец слева от матрицы номерами строк. Присвоим имена: диапазону матрицы дадим имя A_, диапазону номеров строк имя I_, диапазону номеров столбцов имя J_.
Таблица имён
A_ | =Лист1!$D$3:$H$7 |
I_ | =Лист1!$C$3:$C$7 |
J_ | =Лист1!$D$2:$H$2 |
Так как в этом типе задач производится обработка элементов массива и вначале неявным образом возвращается массив то, хотя результат получается в одной клетке надо завершать ввод формулы комбинацией клавиш «Ctrl+Shft+Enter».
Примеры:
Рассмотрим подробнее следующий пример:
Найти среднее арифметическое элементов матрицы попадающих в диапазон [x,y].
Подсчёт количества элементов попадающих в диапазон производится по формуле
{=СУММ(ЕСЛИ(A_>=x_;ЕСЛИ(A_<=y_;1;0);0))}
Сумма рассчитывается по формуле
{=СУММ (ЕСЛИ(A_>=x_;ЕСЛИ(A_<=y_;A_;0);0))}
Для вывода преобразованной матрицы выделим диапазон клеток такой же, как исходная матрица, прономеруем строки и столбцы, дадим им имена и введём формулу
{=ЕСЛИ(I_=2;ЕСЛИ(J_=3;SRA_;A_);A_)}
ввод формулы завершим комбинацией клавиш «Ctrl+Shft+Enter».
Примечание. Логическую функцию И() в данной задаче применить нельзя, так как при первом значении ЛОЖЬ, она вернёт ЛОЖЬ для всего диапазона. Поэтому приходится применять двойное ЕСЛИ().