【问题标题】:EXCEL find the last relative maximum in a array (formula, not VBA)EXCEL 查找数组中的最后一个相对最大值(公式,而不是 VBA)
【发布时间】:2015-09-11 12:29:40
【问题描述】:

我有一个包含以下值的范围:

169.7978
168.633
168.5479
168.7819
167.7407
165.4146
165.1232 

我不需要范围的最大值,即本例中的第一个单元格),而是最后一个相对最大值,在本例中是第四个单元格。有没有办法在无需编写 VBA 宏的情况下获得此值?该公式必须足够通用,才能处理多个最大值。

【问题讨论】:

    标签: excel-formula max


    【解决方案1】:

    它可能有点限制,但你可以从下面的某个地方开始。

    OP 中的声明数组是:

    +----------+---+
    |    y     | x |
    +----------+---+
    | 169.7978 | 1 |
    | 168.633  | 2 |
    | 168.5479 | 3 |
    | 168.7819 | 4 |
    | 167.7407 | 5 |
    | 165.4146 | 6 |
    | 165.1232 | 7 |
    +----------+---+
    

    鉴于此,您可以使用以下帮助列找到直接邻接相对最小值/最大值

    分配一个 Global_Rank 辅助列,并使用以下公式(假设您的数据按 x 索引排序)(第 2 行中的公式并填写)在两个相邻的 f(x) 上查找 y 发行版相同的趋势。

    RelativeMax: =IF(AND(D2<=D1,D2<=D3),"RelativeMax","")

    相对最小: =IF(AND(D2>=D1,D2>=D3),"RelativeMin","")

    根据需要进行修改。希望这会有所帮助。

    编辑:

    虽然...

    如果您要假设数据排序正确,您也可以只使用=IF(AND(B2>=B1,B2>=B3),"RelativeMin",IF(AND(B2<=B1,B2<=B3),"RelativeMax","")) 并跳过所有错误。这应该适用于多个最大值/最小值。请报告您数据集中的结果!

    【讨论】:

    • 嗨,对于“正确排序”,您的意思是 y 列正在增加 x 顺序,对吗?是的——当然是。我会在星期一测试它并让你知道。谢谢!
    • @DeltaIV 是的,没错。需要保持数据索引才能使公式起作用。如果您要重新排序或不确定数据是否按索引顺序排列,您将需要使用VLOOKUP 或类似名称来获取>= / 两侧的正确值<= 运营商。祝你考试顺利!请回复成功或失败。
    • 对不起,我忘记发帖了!无论如何,它完美地工作。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 2013-04-23
    • 2015-06-16
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多