Хотя я не смог придумать решение с одной формулой (может быть, кто-то еще!), Я придумал что-то, что занимает гораздо меньше места в электронных таблицах, чем другая матрица 150 x 360.
Основная идея состоит в том, чтобы вычислить кумулятивные итоги в каждой строке для одного столбца данных, а затем использовать их в таблице данных («анализ« что, если »») для генерации счетчиков для всех столбцов.
Отправной точкой является столбец вычислений для строк в одном столбце данных.
Как показано на скриншоте ниже, я настроил рабочий лист с 10 столбцами данных.
Вспомогательная колонна
Справа от данных я установил вспомогательный столбец L.
Ячейка L1 содержит COUNTIF
строк в этом столбце, сумма которых больше нуля.
Для сумм строк вместо простой суммы столбцов в каждой строке (опять же, только для столбца A) я использую сумму диапазона, возвращаемого функцией OFFSET
. Эта функция имеет вид
OFFSET(reference cell, number of rows to offset, number of columns to offset,
height of range to return, width of range to return)
Ячейка L3 имеет первое из выражений SUM(OFFSET(...))
. Он вычисляет сумму строк для диапазона, который составляет 0 строк вниз от ячейки A2 и 0 столбцов справа, с высотой 1 строки и шириной, равной значению в ячейке L2. В этом случае L2 имеет значение 1.
Эта формула копируется в 360 строк, в каждом случае вычисляется сумма высоты строки в диапазоне 1 и ширины, определяемой значением в ячейке L2.
Например, если значение в L2 было изменено на 2, то формулы в столбце будут вычислять суммы по строкам значений в столбцах A и B для каждой из 360 строк. И ячейка L1 будет показывать количество строк в диапазоне A2:B361 с суммой, большей 0.
Таблица данных
Функциональность таблицы данных Excel позволяет быстро определить влияние на вычисление изменения значения одного (или двух) входных данных для этого расчета. Он настраивается с помощью кнопки « What-If Analysis
в разделе « Data Tools
Data
» на вкладке « Данные » на ленте.
На прилагаемом рисунке показана настройка таблицы данных.
Таблица данных будет создана в диапазоне R1:S10. В верхней части таблицы в ячейке S1 находится ячейка результата, для которой будут меняться входные данные. В этом случае ячейка результата содержит формулу =L1
, которая является просто ссылкой на формулу COUNTIF
в верхней части вспомогательного столбца L.
Я предварительно ввел значения «что-если» в ячейках R2:R10. Показанные значения - 1, 2, ..., 9 - представляют ширину диапазонов, которые вернет OFFSET. И "входная ячейка столбца" - это ячейка L1
, ячейка, которая определяет ширину строк, которые суммируются в столбце помощника.
В двух словах, мы вводим ширину 1-9 (эквивалентно столбцам "A", «A:B», «A:C» и т.д.), А таблица данных вычисляет количество строк, сумма которых превышает 0 для каждого из этих промежутков столбца.
Последняя картинка показывает окончательные результаты. Таблица данных рассчитала количество строк для каждого столбца входных данных, т. Е. Количество построчных сумм (предыдущих столбцов), которые больше 0. Эти подсчеты были возвращены в ячейках S2:S10 таблицы данных. Я перенес подсчеты в первый ряд исходных данных, используя функцию TRANSPOSE
.
Пример рабочего листа со всеми расчетами доступен здесь.