跳到主要內容跳到頁尾

運算子函式(數學):ADD、MINUS、MULTIPLY、DIVIDE、POW、UMINUS、UPLUS 與 UNARY_PERCENT

6 分鐘閱讀Lv.3 中級摘要與日期

ADD、MINUS、MULTIPLY、DIVIDE、POW 對應 + - * / ^,UMINUS、UPLUS、UNARY_PERCENT 對應負號、正號與百分號。整理八個函式的語法、結果,以及什麼時候該寫成函式(MAP、REDUCE 要傳函式的地方)。

發布 更新

文章目錄

在函式清單裡會看到一批長得很奇怪的函式:ADD、MINUS、MULTIPLY、DIVIDE,意思跟你天天在打的 +、-、*、/ 一模一樣。

坦白說,我自己在一般的公式裡幾乎不會寫 ,直接寫 短得多。它們存在的理由是:有些地方只吃「函式」,不吃符號。這篇把八個對應的函式整理一遍,也講清楚什麼時候才值得寫成函式。

後面的例子都用這張小表,A 欄是品項,B 欄是實際賣出的杯數,C 欄是目標杯數,D 欄是單價:

ABCD
1品項實際目標單價
2蘋果紅茶374045
3青茶11210035
4烏龍茶81040
5蘋果綠茶535050
6檸檬紅茶263055
7桂花烏龍918060
8熟成紅茶141548

怎麼選

函式等同的寫法參數
ADD+2 個
MINUS-(相減)2 個
MULTIPLY*2 個
DIVIDE/2 個
POW^2 個
UMINUS前面的負號1 個
UPLUS前面的正號1 個
UNARY_PERCENT後面的 %1 個

兩件事先記著,後面每個函式都適用:

  • 它們全部都只吃固定個數的參數。ADD 只能加兩個數,想加一排請用 SUM,不要寫成 ADD(A1, A2, A3)。
  • 什麼時候用函式、什麼時候用符號:平常算式用符號。需要把「加法」本身交給別的函式,例如 REDUCE、MAP 的 LAMBDA 裡,或是想讓一長串巢狀公式的每一步都有名字時,才改寫成函式。

四則運算

ADD

傳回兩個數字的和,等於 +。

語法:

我想把 B2 的實際杯數加上 C2 的目標杯數,只是為了示範:

Google 試算表公式
fx

蘋果紅茶實際加目標

=ADD(B2, C2)

手算 37 + 40 = 77,你應該會得到 77!

ADD 只收兩個參數。要加總 B2:B8 請用 SUM,或是在 REDUCE 裡把 ADD 當成累加的動作,這個用法在後面「要傳函式的地方」會講。

MINUS

傳回第一個數減第二個數,等於 -。

語法:

Google 試算表公式
fx

蘋果紅茶實際減目標

=MINUS(B2, C2)

37 - 40 = -3,結果是 -3,代表差目標 3 杯。順序有差,MINUS(C2, B2) 就是 3 了。

MULTIPLY

傳回兩個數的乘積,等於 *。

語法:

蘋果紅茶賣了 37 杯、單價 45:

Google 試算表公式
fx

蘋果紅茶營業額

=MULTIPLY(B2, D2)

37 × 45 = 1665,結果是 1665。

跟 PRODUCT 的差別是 PRODUCT 吃一整排數字,MULTIPLY 只吃兩個。

DIVIDE

傳回第一個數除以第二個數,等於 /。

語法:

達成率就是實際除以目標:

Google 試算表公式
fx

蘋果紅茶達成率

=DIVIDE(B2, C2)

37 ÷ 40 = 0.925,結果是 0.925,把儲存格格式設成百分比就是 92.5%。

除數是 0 的話會得到 #DIV/0!,跟 / 一樣:

Google 試算表公式
fx

除以 0

=DIVIDE(B2, 0)

這邊要記得,DIVIDE 不會幫你處理 0。要避開的話,外面包 IFERROR,或先用 IF 判斷除數。

次方

POW

傳回底數的次方,等於 ^。

語法:

Google 試算表公式
fx

2 的 10 次方

=POW(2, 10)

結果是 1024。

POW 的作用跟 POWER 一樣,我個人會直接用 POWER,因為名字比較不容易被問「這是什麼」。POWER、^ 與開根號的 SQRT 在 數學基礎函式整理 有講過,這邊不重複。

正負號與百分比

UMINUS

把數字的正負號互換,等於在前面加上負號。

語法:

Google 試算表公式
fx

差距反號

=UMINUS(MINUS(B2, C2))

MINUS(B2, C2) 是 -3,反號之後得到 3。直接對儲存格也可以, 會得到 -37。

UPLUS

傳回原本的數字,什麼也不做,等於在前面加上正號。

語法:

Google 試算表公式
fx

正號

=UPLUS(B2)

結果是 37。這個函式我完全想不到實際用途,應該只是為了讓運算子都有對應的函式。放在這裡當作補齊的小知識。

UNARY_PERCENT

把數字當成百分比,傳回除以 100 之後的值,等於在數字後面加上 %。

語法:

Google 試算表公式
fx

把 37 當成 37%

=UNARY_PERCENT(B2)

結果是 0.37。官方範例是 UNARY_PERCENT(100) 等於 1,同一個意思。

公式裡直接寫 37% 的效果就是這個。要注意它傳回的是 0.37 這個數字,儲存格看起來是不是「37%」是格式的事,這個差別在 儲存格的值與顯示格式 有詳細講。

要傳函式的地方

回到一開始的問題:為什麼需要這些函式?

MAP、REDUCE 這類函式要你交給它「每一筆資料要做什麼事」,而這件事寫在 LAMBDA 裡。裡面當然可以直接寫 a-b,但寫成 MINUS(a, b) 也完全一樣,有人覺得這樣讀起來比較像一個動作。來看一個例子,每個品項的實際減目標:

Google 試算表公式
fx

用 MAP 算每個品項的差距

=MAP(B2:B8, C2:C8, LAMBDA(a, b, MINUS(a, b)))

會得到 -3、12、-2、3、-4、11、-1 這七個數字,往下溢出。

累加則是 REDUCE 的主場,把 ADD 放進累加動作:

Google 試算表公式
fx

用 REDUCE 加總實際杯數

=REDUCE(0, B2:B8, LAMBDA(acc, x, ADD(acc, x)))

37 + 112 + 8 + 53 + 26 + 91 + 14 = 341,結果是 341。

不要因為 ADD 剛好吃兩個參數,就直接把內建函式名放進 REDUCE 的最後一個引數。直接傳 ADD 會回 #N/A,明確包成 LAMBDA(acc,x,ADD(acc,x)) 才會得到 341。

若要把具名函式傳進去,先真的建立,不能只抄一個尚未定義的名字:

  1. 開「資料」>「已命名函式」>「新增」,函式名稱填 MRSHEET_ADD。
  2. 依序新增引數預留位置 sum、value,公式定義填 。這裡的 SUM 與 VALUE 是引數,不是帶括號的內建函式呼叫。
  3. 按「繼續」到預覽,再按「建立」。

建立後, 得到 3;把這個已建立的名稱交給 REDUCE,七筆同樣得到 341。這是具名函式符合引數規則的例子,不代表內建 ADD 名稱可以直接代入。

REDUCE 官方說明允許 LAMBDA 或符合引數規則的具名函式;這不等於任意內建函式名都可直接代入。本篇保留明確的 LAMBDA(acc,x,ADD(acc,x)) 寫法。

再來一個混合的例子,七個品項的總營業額,也就是每一個品項的杯數乘上單價之後再加起來:

Google 試算表公式
fx

用 MAP 與 MULTIPLY 算總營業額

=SUM(MAP(B2:B8, D2:D8, LAMBDA(q, p, MULTIPLY(q, p))))

1665 + 3920 + 320 + 2650 + 1430 + 5460 + 672 = 16117,結果是 16117。

說實話,這題直接寫 更短。這邊只是示範函式版寫法怎麼接。需要 MAP 的時候,通常是每一筆要先經過很多步驟,才用得到這種寫法。

看到別人用的時候

這八個函式我幾乎都直接寫符號,要算次方才用 POWER。看到它們出現在別人的公式裡,你知道它等於符號就夠了。需要查的時候回來看一眼,就這樣!

分享:
#運算子#ADD#MULTIPLY#數學函式
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。