【问题标题】:Dynamic cell reference within a ROW() referenceROW() 引用中的动态单元格引用
【发布时间】:2017-01-19 06:25:14
【问题描述】:

我需要 Excel 2013 中的一个函数,该函数在单个列的单元格范围内返回动态单元格引用。这必须处理 2 到 24 行,具体取决于客户对其销售数据建模的月数。

以红色突出显示的单元格引用是我需要在函数中动态引用的单元格引用。它在这里似乎是静态的,但这只是因为它当前指的是当前范围的最后一个单元格 - $C15。但是,如果我要模拟 7 个月或更多(或更少)个月,则单元格地址引用将相应更改。我尝试在E$15 位置插入不同的函数,但它总是返回#VALUE 错误。

我有一个可以根据需要工作的函数,但我使用ROW() 函数返回用户输入数据的单元格地址。此用户输入数据始终是列 (2-24) 中的最后一个单元格,但需要被其上方的单元格引用才能正确建模数据。

=IF(A11=Impact_Over_Months,Retention_Range_Min,IF(A11>Impact_Over_Months,"",(ROW()-ROW(C$10))/(ROW(C$15)-ROW(C$10))*(LOOKUP(2,1/($C$10:$C$33<>""),$C$10:$C$33)-Retention_Range_Max)+Retention_Range_Max))

问题出在这部分 - /(ROW(C$15)-ROW(C$10))*,其中函数 ROW(C$15) 必须将动态单元格引用返回到数据集中的最后一行。

我尝试过 OFFSET、INDEX、MATCH 和其他不同的组合,但无济于事。谁能提供一个不涉及 VBA的解决方案?

【问题讨论】:

    标签: excel-formula row


    【解决方案1】:

    尝试使用ROWS 而不是ROW,这样您就可以在数组中使用INDEX 来获取最后一个条目:

    ROWS($C$1:INDEX($C:$C,COUNTA($C:$C)))
    

    【讨论】:

    • 你可以在这里ablebits.com/office-addins-blog/2015/02/18/excel-index-function/…INDEX这样的方式得到一个很好的描述
    • COUNTA 在这里不起作用。它查找非空单元格,但在这种情况下,由于函数驻留在动态范围内的每个单元格中,Excel 将函数视为非空单元格。我将尝试使用 COUNTIF/COUNTIFS 的版本...
    • 尝试用COUNTIF($C:$C,"&gt;""")替换COUNTA
    • 请注意,这只适用于文本。在这种情况下,数字会被忽略。
    • 我需要返回具有用户输入值的单元格地址,因此 COUNTIF 也不起作用...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多