Отображение только максимума множественных итераций (Microsoft Excel)
У Майка есть три ячейки (A1: A3), которые показывают результаты вычислений. Ему нужен способ определить максимальное значение, которое когда-либо появлялось в любой из этих ячеек, и сохранить это значение в ячейке E5. Он знает, как получить максимум из трех, но когда он пересчитывает рабочий лист, если значения в A1: A3 меньше максимального значения в E5 (на основе предыдущих определений максимума в A1: A3), тогда E5 не должно измениться. Другими словами, E5 должен изменяться только в том случае, если то, что указано в A1: A3, больше, чем в E5. Майк не знает, как произвести такой расчет.
Есть два способа решить эту проблему. Первый — создать простую формулу, которая будет помещена в ячейку E5:
=MAX(A1:A3,E5)
Функция MAX проверяет различные значения, на которые она ссылается, и затем возвращает максимум из них — именно то, что требуется. Однако, поскольку эта формула помещается в ячейку E5 и также ссылается на E5, она вернет ошибку. Это потому, что формула создает круговую ссылку. Excel может справиться с этим, но для этого нужно внести небольшое изменение в конфигурацию:
-
Откройте диалоговое окно «Параметры Excel». (В Excel 2007 нажмите кнопку «Office», а затем нажмите «Параметры Excel. В Excel 2010 и более поздних версиях откройте вкладку« Файл »на ленте, а затем нажмите« Параметры ».)
-
Щелкните Формулы в левой части диалогового окна. (См. Рис. 1.)
-
Убедитесь, что установлен флажок Включить итеративное вычисление.
-
Щелкните ОК.
Теперь Excel будет обрабатывать циклические ссылки, такие как простая формула, которую вы поместили в ячейку E5.
Второй подход — использовать макрос для выполнения вычислений. Этот подход может быть предпочтительным, потому что вы можете не захотеть (по какой-то причине) включать циклические ссылки в своей книге. Следующее — это фактически обработчик событий, добавленный в код для рабочего листа. (Самый простой способ:
Щелкните правой кнопкой мыши вкладку листа, откройте окно кода из появившегося контекстного меню и добавьте макрос в это окно кода.)
Private Sub Worksheet_Calculate() Dim dMax As Double dMax = Application.WorksheetFunction.Max(Range("A1:A3")) If dMax > Range("E5") Then Application.EnableEvents = False Range("E5") = dMax Application.EnableEvents = True End If End Sub
Макрос запускается каждый раз при пересчете рабочего листа. Он берет максимум A1: A3 и сравнивает его с тем, что есть в E5. Только если оно больше, это значение помещается в E5.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (10916) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Only_Showing_the_Maximum_of_Multiple_Iterations [Отображается только максимальное количество множественных итераций]
.