回覆列表
  • 1 # 簡淨軒語

    用indirect函式吧。

    公式: =SUM(A1:INDIRECT("A"&INDIRECT("A13")))

    頁面截圖:

    動畫演示:

  • 2 # 考拉的凝視

    一、問題轉化為例項分析

    我先將題主的問題轉化為一個例項,如下圖所示:

    從上圖可以看到:

    A10=12,所以需要求的和是前12行的和。

    假設是求B列的前12行和,則常規求和公式為【=SUM(B1:B12)】,結果為585。

    但是A10的值是任意的,這種情況下,一旦A10的值發生變化,常規求和公式得出的結果就不對了,必須要隨著A10值的變化去手工調整求和範圍。顯然,這樣很麻煩。

    所以題主希望在不調整公式的情況下,求和範圍和結果隨著A10值的變化而變化。

    二、問題解答

    我們先看一下最終效果:

    從上圖可以看到:

    當A10的值變化時,常規求和的結果沒有變化,而自動求和的結果隨A10值的變化而變化。

    自動求和公式:

    =SUM(OFFSET($B$1,,,INDIRECT("A10"),))

    其中,INDIRECT("A10")表示A10的值,設為X,初始為12。

    OFFSET($B$1,,,INDIRECT("A10"),)表示B1至BX(初始為B12)的範圍,當A10的值變化時,X變化,B1至BX的範圍發生變化,最終用SUM求和的結果也發生變化。

  • 3 # 套路Excel

    此問題可以使用的函式方法比較多。如下圖例子:

    1、indirect函式

    1.1、indirect函式讀取A10單元格的值:=INDIRECT("A10")

    1.2、使用sum函式求和

    =SUM(B1:INDIRECT("b"&INDIRECT("A10")))

    1.3、明白indirect函式的用法後,可以進一步簡化上面的公式為:

    =SUM(INDIRECT("b1:b"&A10))

    INDIRECT("b1:b"&A10)返回的是b1:b10的單元格區域的陣列,如下:

    滑鼠抹黑公式,然後按F9,得出結果:

    {35;69;36;16;77;73;58;36;28;93}

    最後配合sum+indirect函式求和,得出結果:

    2、使用offsect函式返回動態的單元格範圍

    =SUM(OFFSET(B1,0,0,A10,1))

    OFFSET(B1,0,0,A10,1)返回B1單元格為起點,0行,0列,10行高,1列寬的單元格區域,也就是B1:B10單元格區域,然後用sum函式對此區域求和。

    offset四個引數中,可以省略為:=SUM(OFFSET(B1,,,A10,)),同樣得出521的結果。

    3、使用SUMPRODUCT+ROW函式

    =SUMPRODUCT((ROW(B1:B20)<=A10)*B1:B20)

    此方法用ROW(B1:B20)製造條件,只要行號小於等於A10單元格的值(10)的,就進行求和,間接得出結果。

    以上為一些方法,僅供參考!

    推薦使用sum+offset的方法,offset經常用來返回動態的單元格範圍。

  • 中秋節和大豐收的關聯?
  • 有的遠嫁的媳婦因為吃不慣婆婆做的飯,在坐月子的時候被婆婆趕出家門,對此你怎麼看?