Суммирование каждой четвертой ячейки в строке (Microsoft Excel)
Кевину нужно создать формулу, которая суммирует каждую четвертую ячейку подряд. Он знает, что может использовать такую формулу, как = A6 + E6 + I6 + M6 и т. Д., Но это становится громоздким, если на листе много столбцов.
Есть несколько способов решить эту проблему. Один из способов — добавить на лист дополнительную информацию, чтобы указать, какие ячейки следует включить в сумму. Например, в примере вас интересует суммирование ячеек в строке 6 рабочего листа. Если вы можете добавить несколько индикаторов в строку 5, их можно будет использовать в качестве «триггеров» в формуле. Например, введите число 1 над каждой ячейкой, которую вы хотите включить в сумму (столбцы A, E, I, M и т. Д.). Затем вы можете использовать следующую формулу:
=SUMPRODUCT(A5:X5, A6:X6)
Формула в основном умножает все, что находится в строке 5, на строку 6, а затем суммирует результаты. Поскольку в столбцах, которые вы хотите просуммировать, только единицы, это все, что входит в окончательную сумму.
Если вы не хотите добавлять строку индикатора на свой рабочий лист, вам нужно рассмотреть другие решения. Вы по-прежнему можете использовать функцию СУММПРОИЗВ в следующей формуле:
=SUMPRODUCT((MOD(COLUMN(6:6),4)=1)*(6:6))
Эта формула использует функцию MOD для возврата остатка от деления. В этом случае делится номер столбца ячейки на значение 4. В результате остаток будет равен 0, 1, 2 или 3. Каждая четвертая ячейка в строке будет иметь одинаковый остаток. Таким образом, столбец A (также известный как столбец 1) будет иметь значение MOD, равное 1 (1, деленное на 4, равно 0, при этом остается 1), как и столбцы E, I, M и т. Д.
Обратите внимание, что формула сравнивает, равно ли значение MOD 1 или нет. Если это так, то сравнение возвращает True (1); если это не так, возвращается False (0). Затем он умножается на ячейку в шестой строке.
Наконец, СУММПРОИЗВ суммирует все эти умножения и дает желаемый результат.
Хотя эта формула дает сумму для каждой четвертой ячейки в шестой строке, ее можно легко изменить, чтобы получить сумму для каждой третьей ячейки, пятой ячейки или любого другого интервала, который вы хотите. Просто измените 4 в функции MOD на желаемый интервал.
Если вы хотите выбрать другую ячейку в каждом «кластере» из четырех ячеек для суммирования, то все, что вам нужно сделать, это изменить значение, сравниваемое в функции MOD. В этом примере только первая ячейка в каждом кластере из четырех будет иметь MOD 1 (A, E, I, M и т. Д.). Если вместо этого вы хотите суммировать каждую четвертую ячейку, начиная, скажем, с ячейки C, тогда вы должны изменить значение сравнения с 1 на 3. Почему? Потому что C является третьей ячейкой в кластере и будет иметь MOD 3, как и каждая четвертая ячейка после этого (G, K, O и т. Д.).
Единственное, что нужно сделать для этого общего правила, это если вы хотите просуммировать четвертую ячейку в каждом кластере из четырех ячеек. Например, вы можете захотеть суммировать ячейки D, H, L, P и т. Д. В этом случае используемое значение для сравнения не будет равно 4, поскольку никогда не будет остатка от 4 при выполнении операции MOD, которая включает деление на 4 . Вместо этого значение для сравнения будет равно 0, как показано ниже:
=SUMPRODUCT((MOD(COLUMN(6:6),4)=0)*(6:6))
Если вы предпочитаете работать с формулами массива, вы можете использовать более короткий вариант приведенной выше формулы:
=SUM(IF(MOD(COLUMN(6:6),4)=1,6:6))
Обратите внимание, что формулу нужно вводить, нажимая Ctrl + Shift + Enter.
Затем он появится в строке формул в фигурных скобках (\ {}) вокруг формулы. Здесь применяются те же примечания по модификации, что и для делителя MOD и значения сравнения, что и для функции СУММПРОИЗВ.
Оба этих формульных подхода (СУММПРОИЗВ и формула массива)
суммируйте каждую четвертую ячейку во всей строке. Если вместо этого вы хотите ограничить количество ячеек, из которых вычисляется сумма, частью строки, просто замените 6: 6 (оба экземпляра) правильным диапазоном. Таким образом, если вы хотите суммировать только каждую четвертую ячейку в диапазоне A6: Z6, вы должны использовать этот диапазон в формуле.
Если вы делаете много суммирования таким образом и применяете его не только к диапазонам в строке, но и к диапазонам в столбце, вы можете рассмотреть возможность создания определяемой пользователем функции для выполнения суммирования. Следующая простая функция поможет:
Function SumEveryFourth(MyRange As Range) Dim x As Integer SumEveryFourth = 0 For x = 1 To MyRange.Cells.Count If (x Mod 4) = 1 Then SumEveryFourth = SumEveryFourth + MyRange.Cells(x).Value End If Next x End Function
Функция проверяет переданный ей диапазон, а затем суммирует каждую четвертую ячейку, начиная с первой ячейки в диапазоне. Если вы предпочитаете, чтобы он суммировал каждую вторую ячейку в диапазоне, измените значение сравнения в операторе If, как обсуждалось ранее в этом совете. (Поскольку в этой функции используется операция Mod, и она работает так же, как функция рабочего листа MOD, то для определения, какая ячейка в каждом кластере должна быть суммирована, используются те же значения сравнения.)
Пользовательская функция будет работать как с ячейками в строке, так и с ячейками в столбце. Вам просто нужно убедиться, что вы передаете ему нужный диапазон, как показано здесь:
=SumEveryFourth(C3:C57)
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (9203) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Summing_Every_Fourth_Cell_in_a_Row [Суммирование каждой четвертой ячейки в строке]
.