【问题标题】:Using OFFSET with a 3D range (range across multiple sheets)将 OFFSET 与 3D 范围一起使用(跨多个工作表的范围)
【发布时间】:2017-08-22 01:56:44
【问题描述】:

我有一个数据库,相关数据位于多张工作表的同一行中,并且每隔一列都有数据。我一直在尝试使用具有 AVERAGE/SUM 和 OFFSET 的 3D 范围,但我似乎无法弄清楚。我在 OFFSET 部分收到 #VALUE 错误。这是我一直在使用的设置。

=AVERAGE(OFFSET('Sheet 1:Sheet 4'!A1,0,COLUMN(A1)*2-1))

工作表名称中确实有空格,因此我在上面的公式中,单词 Sheet 和数字之间的空格是故意的。我已经尝试了仅使用平均/求和函数的 3D 范围,它工作正常。 3D 范围是否与 OFFSET 功能不兼容?

【问题讨论】:

    标签: excel excel-formula sum average offset


    【解决方案1】:

    试试……

    =AVERAGE(N(OFFSET(INDIRECT("'"&{"Sheet1","Sheet2"}&"'!A1"),0,COLUMN(A1)*2-1)))
    

    =AVERAGE(N(OFFSET(INDIRECT("'"&$G$2:$G$3&"'!A1"),0,COLUMN(A1)*2-1)))
    

    ...其中 G2:G3 包含工作表名称。注意第二个公式需要用CONTROL+SHIFT+ENTER确认,而不仅仅是ENTER

    希望这会有所帮助!

    首次编辑

    虽然仍然需要数组公式,但您可以避免使用 CONTROL+SHIFT+ENTER 确认公式,并且可以避免在单元格区域中列出工作表名称。

    1) 首先定义名称SheetNames如下...

    Refers to:  ={"Instrument Partners","Supply Partners","Repair Partners","Wholesale Partners"}
    

    2) 那就试试……

    =AVERAGE(INDEX(N(OFFSET(INDIRECT("'"&SheetNames&"'!A1"),0,COLUMN(A1)*2-2)),0))
    

    ...只需要通过ENTER确认即可。

    第二次编辑

    "'"&SheetNames&"'!A1" 返回以下文本值数组...

    "'Instrument Partners'!A1"
    "'Supply Partners'!A1"
    etc...
    

    这个文本值数组被传递给 INDIRECT,它返回以下引用数组...

    'Instrument Partners'!A1
    'Supply Partners'!A1
    etc...
    

    反过来,这个引用数组被传递给OFFSET,它也根据行和列偏移返回一个引用数组...

    OFFSET('Instrument Partners'!A1,0,COLUMN(A1)*2-2) --> 'Instrument Partners'!A1
    OFFSET('Supply Partners'!A1,0,COLUMN(A1)*2-2) --> 'Supply Partners'!A1
    etc...
    

    然后我们通过将这个引用数组传递给 N() 函数来检索值...

    N('Instrument Partners'!A1) --> returns actual value from the cell reference
    N('Supply Partners'!A1) --> returns actual value from the cell reference
    etc...
    

    然后我们将这个值数组传递给 INDEX 函数,该函数返回一个值数组并允许只使用 ENTER 确认公式,而不是 CONTROL+SHIFT+ENTER。

    最后,值数组被传递给 AVERAGE 函数,该函数返回实际平均值。

    【讨论】:

    • 谢谢!我尝试了这两个公式,结果应该是 50,结果是 0,所以我进入了评估,似乎我仍然在此过程中遇到 #VALUE 错误。我想我应该多提一些关于工作表的事情布局。工作表的名称中都有空格,并且无法更改。此外,有 4 张表(全部按顺序)需要参考,所以我的原件应该说类似“Sheet 1:Sheet 4”
    • 糟糕。对于那个很抱歉!你是对的,我引用的单元格被关闭了一行。但是,这两个公式似乎只取了表 1 和表 4 上的值的平均值,而缺少两者之间的值。抱歉,我知道我没有在原始问题中指定这一点,但有两个以上的工作表可供参考。目前的解决方案需要 4 张,但最多可以有 15-20 张,所以我想知道是否有办法引用公式中的第一张和最后一张,并从中间的所有表格中获取信息。
    • 由于您有很多工作表,请使用第二个公式。只需在一系列单元格中输入工作表名称,然后将 G2:G3 替换为对包含工作表名称的范围的引用。此外,请确保使用 CONTROL+SHIFT+ENTER 确认公式,而不仅仅是 ENTER。不过,为了确定一下,您要对哪些单元格进行平均?
    • 啊,数组公式可以正常工作,非常感谢!无论如何,您是否可以想到无需数组公式或无需在其他单元格中添加工作表名称列表即可完成此操作?我可以在某处看到此信息被复制和粘贴而没有包含工作表名称的范围,因此它可能无法正确传输。如果这是不可能的,那么不用担心。
    • 不是拖动公式让每个单元格都包含一个平均值,而是可以拖动或粘贴它以便每个其他单元格都包含平均值吗?如果没有,您的工作表名称是什么?
    猜你喜欢
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多