Анализ ежедневных результатов команды — важная часть управления проектами. Предположим, у вас есть таблица с баллами сотрудников за каждый день месяца, и нужно быстро определить, кто показал наивысший результат, в какие даты это произошло и какое именно значение стало рекордным. На первый взгляд задача кажется простой, но нюансы вроде повторяющихся максимумов или пустых ячеек могут усложнить процесс.
Для примера возьмем таблицу с данными за декабрь, где строки соответствуют сотрудникам, а столбцы — дням месяца. В конце добавлена строка «Max value», которая уже содержит максимальные значения за первые четыре дня. Но как автоматизировать этот процесс и сразу получить имена участников и даты?

Шаг 1: Находим максимальное значение за любой день
Первым делом определим глобальный максимум. Для этого используем функцию max()
, указав диапазон всех ячеек с баллами. Например, если данные находятся в диапазоне B2:ZZZ5
(где B2 — первая ячейка с баллами, а ZZZ5 — условный конец таблицы), формула будет выглядеть так:
=max(B2:ZZZ5)
Эта функция проигнорирует пустые ячейки и вернет наибольшее значение. Если в таблице уже есть строка с максимумами по дням (как в примере), можно использовать max()
для этой строки:
=max(B6:ZZZ6)
Важно: Убедитесь, что в диапазон не включены заголовки или другие нечисловые данные — это вызовет ошибку.
Шаг 2: Определяем сотрудников с максимальным результатом
Теперь нужно вывести имена тех, кто достиг этого значения. Здесь пригодится комбинация функций filter()
и byrow()
. Допустим, максимальное значение (60) находится в ячейке D9. Тогда формула для поиска имен будет такой:
=join(", ", filter(
A2:A5,
D9 = byrow(B2:ZZZ5, lambda(row, max(row)))
))
Поясню:
byrow()
проходит по каждой строке (то есть по каждому сотруднику) и находит максимум в их баллах с помощьюlambda(row, max(row))
filter()
отбирает только те строки из столбца A (имен), где максимум строки равен глобальному максимуму (D9)join(", ")
объединяет результаты через запятую, если таких сотрудников несколько
Шаг 3: Выявляем даты, когда был достигнут максимум
Чтобы найти дни, используйте аналогичный подход, но с функцией bycol()
для анализа столбцов:
=join(", ", filter(
B1:ZZZ1,
D9 = bycol(B2:ZZZ5, lambda(col, max(col)))
))
Здесь:
bycol()
проверяет каждый столбец (день месяца) и находит максимальный балл в немfilter()
отбирает заголовки столбцов (B1:ZZZ1), где максимум совпадает с D9
Совет: Если в таблице много дней, замените ZZZ на реальный последний столбец (например, AE1 для 31 дня). Это ускорит работу таблицы.
Дополнительные рекомендации
Обработка пустых ячеек. Функции max()
, byrow()
и bycol()
автоматически игнорируют пустые значения, но если в данных есть нули, учтите это при интерпретации
Динамические диапазоны. Если данные добавляются регулярно, используйте открытые диапазоны вроде B2:5
(без указания конечного столбца)
Проверка ошибок. Оберните формулы в iferror()
, чтобы избежать сообщений об ошибках, если максимум не найден:
=iferror(join(", ", filter(...)), "Нет данных")
Пример готовой таблицы можно посмотреть здесь. Как видно, для 3-го и 4-го декабря максимальный балл (60) получили Name2 и Name4 соответственно.
Итог: С помощью всего трех функций вы можете автоматизировать анализ результатов, что особенно полезно при работе с большими наборами данных. Если столкнетесь с неочевидными ошибками, проверьте формат ячеек (должен быть «Числовой») и корректность диапазонов.