Excel-模拟程序语言的回圈运算(SUMPRODUCT,MOD,ROW)

【范例一】

参考下图,若要计算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))

拓展思维:如果你在 Excel 的工作表中要实现 Select … Case 多选一的程序逻辑,该如何处理?(参考下图)

Excel-模拟程序语言的回圈运算(SUMPRODUCT,MOD,ROW)

【程序】

Dim k, sum As Integer

sum = 100

k = InputBox("请输入一个数字")

Select Case k

Case 1 : sum = sum + k

Case 2 : sum = sum - k

Case 3 : sum = sum * k

Case 4 : sum = sum / k

End Select

Debug.Print(sum)

在 Excel 中可以透过 CHOOSE 函数来执行多选一的逻辑设计:

单元格E2:=CHOOSE(B3,D3+B3,D3-B3,D3*B3,D3/B3)

单元格B3(=k)是输入的数字;单元格D3(=sum)是默认值。

单元格F3为 sum 的运算结果。


分享到:


相關文章: