Использование функций max / min для запоминания максимумов / минимумов в динамических данных в Excel - PullRequest
2 голосов
/ 04 октября 2011

У меня есть динамические данные, показанные в Excel. Сами данные извлекаются с помощью COM из внешнего приложения, и это в основном число, изменяющееся со временем (например, наружная температура, полученная с веб-сайта о погоде).

Есть ли какой-нибудь удобный способ хранения значения MIN / MAX (), наблюдаемого в течение некоторого периода без использования VBA и макросов? Использование простой формулы в max_cell подобно =IF(data_cell>max_cell, data_cell, max_cell) дает круговую ссылку.

Ответы [ 2 ]

3 голосов
/ 04 октября 2011

Если вы включите Итерацию, циклическая ссылка будет работать нормально на постоянной основе

И вместо IF, который вы можете просто использовать в A1 (где A1 - max_cell, A2 data_cell)

=MAX(A1,A2)

Включение итерации

  • В Excel 2003: в меню «Сервис» выберите «Параметры». 2. На вкладке «Расчет» установите флажок «Итерация» и нажмите кнопку «ОК».
  • Итерация xl2007
  • Итерация xl2010
1 голос
/ 04 октября 2011

Я благодарен вам за решение, отличное от VBA, но я предложу его, поскольку его довольно просто реализовать и понять. Я оставлю это на ваше усмотрение, хотите ли вы использовать его или нет.

Предположим, что ваши данные организованы следующим образом в Sheet1 вашей рабочей книги:

    A    B    C
1   Temp Max  Min
2   25   32   14

Следующий код будет обновлять Max и Min всякий раз, когда Temp изменяется:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim temp As Range, max As Range, min As Range

    Set temp = Range("A2") //Change for your specific set-up
    Set max = Range("B2")  //Change for your specific set-up
    Set min = Range("C2")  //Change for your specific set-up

    If Not Intersect(temp, Target) Is Nothing Then
        max = WorksheetFunction.max(Target, max)
        min = WorksheetFunction.min(Target, min)
    End If
End Sub

Для ясности, чтобы добавить этот код из листа:

  1. Открыть редактор VB ( ALT + F11 )
  2. В Project Explorer двойной щелчок Лист1
  3. Выберите Worksheet в раскрывающемся меню слева, а затем Change в раскрывающемся меню справа
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...