近來,大家都在討論運算思維!今天上課的學生約略有程式設計的概念,所以用以下的例子來和 Excel 建立關聯。

 

【範例一】

參考下圖,若要計算1~100的總和,可以善用 Excel 試算的特性,於儲存格B3建立公式:=B2+A3,再複製儲存格B3,貼至儲存格B3:B101。(共100個)

其最後結果,儲存格B101的內容為5050,即為1+2+3+ … + 100的總和。

Excel-模擬程式語言的廻圈運算(SUMPRODUCT,MOD,ROW)

如果,你是使用程式來運算,程式範例如下:

Dim sum As Integer

For i = 1 To 100

 Sum = Sum + i

Next

Debug.Print(Sum)

也可以使用陣列公式:

公式:{=SUM(ROW(1:100))}

輸入完成要Ctrl+Shift+Enter鍵,Excel 會自動加「{}」。

其中ROW(1:100)在陣列公式中代表ROW(1:1)=1、ROW(2:2)=2、...、ROW(100:100)=100。

或是使用 SUMPRODUCT 函數:

公式:=SUMPRODUCT(ROW(1:100))

 

【範例二】

如果改成要計算1+3+…+99(奇數和),該如何處理?

Excel-模擬程式語言的廻圈運算(SUMPRODUCT,MOD,ROW)

程式範例如下:

Dim sum As Integer

For i = 1 To 99 Step 2

 Sum = Sum + i

Next

Debug.Print(Sum)

也可以使用陣列公式:

公式:{=SUM(ROW(1:99)*(MOD(ROW(1:99),2)))}

輸入完成要Ctrl+Shift+Enter鍵,Excel 會自動加「{}」。

MOD(ROW(1:99),2):如果除以 2 的餘數為 0,表示為偶數;如果除以 2 的餘數為 1,表示為奇數。在此 0/1 分別代表 FALSE/TRUE

ROW(1:99)*(MOD(ROW(1:99),2))=ROW(1:99)*(FALSE/TRUE陣列),其結果只會留下奇數部分,再透過 SUM 函數予以加總。

或是使用 SUMPRODUCT 函數:

公式:=SUMPRODUCT(ROW(1:99)*(MOD(ROW(1:99),2)))

 

【範例三】

如果改成要計算1+4+…+100(間隔3的數之和),該如何處理?

(請自行練習)

Excel-模擬程式語言的廻圈運算(SUMPRODUCT,MOD,ROW)

公式:{=SUM(ROW(1:100)*(MOD(ROW(1:100),3)=1))}

公式:=SUMPRODUCT(ROW(1:100)*(MOD(ROW(1:100),3)=1))

arrow
arrow
    文章標籤
    Excel SUMPRODUCT MOD ROW
    全站熱搜
    創作者介紹
    創作者 vincent 的頭像
    vincent

    學不完.教不停.用不盡

    vincent 發表在 痞客邦 留言(2) 人氣()