【问题标题】:Return a cell reference for use in a formula返回要在公式中使用的单元格引用
【发布时间】:2014-03-13 11:25:30
【问题描述】:

我有一个 Excel 工作簿,其中包含 [columnA=time:columnB=data] 类型的配对数据集 有数千个数据点。

我要做的是:我在单独的工作表上有一个时间值表。我想在数据工作表的数据列(B列)中找到对应的单元格,并返回它之前5个单元格和之后40个单元格的值的平均值。

通过搜索问题,我想出了这个公式来返回我正在寻找的确切值的单元格地址,但是我不能把它放入一个平均公式中。

=CELL("address",INDEX('EMG Data'!B1:B10000,MATCH(C5,'EMG Data'!A1:A10000,0),1))

C5 是我知道我想要获取数据值对的时间值。

【问题讨论】:

    标签: excel excel-formula excel-2010


    【解决方案1】:

    使用平均、偏移和匹配的组合,偏移将允许您更改范围内的行数/列数:

    =IFERROR(AVERAGE(OFFSET($B$1,MAX(MATCH(C5,A:A,0)-6,0),0,46)),"SOMETHING IS WRONG")
    

    比赛

    MATCH() 将在第 1 列中找到正确的值并返回其在 A:A 中的位置。

    偏移量

    要偏移到与单元格 B1 相比的相应行,您应该执行 MATCH()-1 (否则单元格 A1 中的匹配产生 1 将使 B1 偏移 1 行,从而显示 B2 的值!!

    您想将 B1 偏移 0 列,因此将其作为第三个参数。

    此外,您还希望拥有之前的 5 行,因此它变为 MATCH()-6,以避免尝试从我们使用 MAX(MATCH()-6,0) 的负行号的行中检索数据。

    因为您希望之前的 5 个单元格和之后的 40 个单元格,您希望高度为 5 + 1 + 40 = 46 个单元格,并使用高度参数的该数字完成偏移参数

    平均

    最后一步是获取实际平均值,因为OFFSET() 函数会返回一系列单元格,这被视为AVERAGE 函数的正常范围输入。

    IFERROR

    如果在 A:A 列中找不到您要查找的值,MATCH() 将给出一个错误,该错误将通过嵌套函数起作用,我们大多数人会使用 IFERROR() 捕获此类事件并转换错误变成用户友好的东西,或者在这种情况下有替代功能/结果

    【讨论】:

    • 将函数参数分隔符更改为您的本地样式(逗号而不是分号)
    • 仔细检查了我的测试,你是对的,抱歉。删除 cmets 和 +1
    猜你喜欢
    • 2019-01-30
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    相关资源
    最近更新 更多