使用最大/最小函数来记住 Excel 中动态数据的高点/低点

发布于 2024-12-08 11:53:07 字数 241 浏览 2 评论 0原文

我有 Excel 中显示的动态数据。数据本身是使用 COM 从外部应用程序中提取的,它基本上是随时间变化的数字(例如,从天气网站接收的外部温度)。

是否有一些方便的方法来存储在某个时间段内观察到的值的 MIN/MAX() 而不使用 VBA 和宏?在 max_cell 中使用简单的公式,如 =IF(data_cell>max_cell, data_cell, max_cell) 给出循环引用。

I have dynamic data shown in Excel. The data itself is pulled using COM from external application, and it is basically number changing over time (for example, outside temperature which is received from weather website).

Is there some convenient way to store MIN/MAX() of value observed during some period without use of VBA and macroses? Using simple formula in max_cell like =IF(data_cell>max_cell, data_cell, max_cell) gives circular reference.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟凡古楼 2024-12-15 11:53:07

如果您打开迭代,那么循环引用将在连续的基础上正常工作

,而不是 IF,您可以在 A1 中使用(其中 A1 是 max_cell,A2 data_cell)

=MAX(A1,A2)

启用迭代

  • 在 Excel 2003 中,从“工具”菜单中选择“选项”。 2. 在“计算”选项卡中,选中“迭代”复选框,然后单击“确定”。
  • 迭代 xl2007
  • < a href="http://msdn.microsoft.com/en-us/library/ff700515.aspx#Office2007excelPerf_ControllingCalculationOptions" rel="nofollow">迭代 xl2010

If you turn Iteration on then the circular reference will work ok on a continuous basis

And rather than an IF you can just use in A1 (where A1 is max_cell, A2 data_cell)

=MAX(A1,A2)

Enabling Iteration

心碎的声音 2024-12-15 11:53:07

感谢您要求非 VBA 解决方案,但我会提供一个,因为它的实现和理解非常简单。我将把它留给你,无论你是否想使用它。

假设您的数据在工作簿的 Sheet1 中的组织方式如下:

    A    B    C
1   Temp Max  Min
2   25   32   14

每当 Temp 时,以下代码都会更新 MaxMin > 更改:

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 中双击 Sheet1
  3. 选择 < code>Worksheet 在左侧下拉菜单中,然后右手下拉菜单中的更改

I appreciate you asked for a non VBA solution but I will offer one as it is quite trivial to implement and understand. I'll leave it up to you whether you want to use it or not.

Suppose your data is organised as follows in Sheet1 of your workbook:

    A    B    C
1   Temp Max  Min
2   25   32   14

The following code will update Max and Min whenever Temp changes:

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

For clarity, to add this code from worksheet:

  1. Open VB Editor (ALT + F11)
  2. In Project Explorer double click Sheet1
  3. Select Worksheet in left hand drop down menu and then Change in right hand drop down
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文