函數,簡單來說,就是「你給我輸入,我給你輸出」,給予數據、資料的輸入,轉換成所需的結果,是解決問題的好工具。在此將以不同的視角來讓您理解函數的功能,並瞭解函數是如何在不同領域協助人們提高工作效率和精確度。對函數多一點認識,就能夠發現函數在職場中的實際價值。
4. 程式設計中的函數(Programming)
打從1947年的Assembly Language這個低階語言開始,程式語言就進入了電腦專業領域,而1957的第一個高階程式設計語言Fortran,就更貼近於語言敘述,也更容易學習、使用和維護,而程式設計人員也能夠建立自己的函數,從而更靈活地處理特定問題和任務。
在程式語言中,函數是一段可重複執行的程式碼,通常用來封裝特定的邏輯,以減少程式碼重複並提高可維護性。即便是不同的程式語言,函數的架構、邏輯都是不變的道理。譬如:透過現在最夯的Python程式設計,撰寫一個輸入體重、身高這兩個參數而計算出BMI值(Body Mass Index,身體質量指數) 的函數真是輕而易舉。

BMI 的英文全名是 Body Mass Index
是一種衡量身體脂肪的指標。它是通過體重 (公斤) 除以身高 (公尺) 的平方來計算的。這個指標可以幫助醫生和健康專業人士評估一個人的體重是否在健康範圍內。例如:在自行建立的BMI函數裡,帶入體重75公斤、身高175公分這兩個參數,即可傳回BMI值為24.49。

若是在Excel環境下,藉由VBA程式碼,可以輕鬆建立這個自訂函數。

在工作表上執行自訂的BMI函數:

以下則是藉由Javascript來撰寫BMI自訂函數:

帶入體重(公斤)與身高(公分)呼叫函數並顯示BMI值:

5. 應用軟體中的函數(Software Applications)
在應用軟體中的函數(Software Applications)領域,函數主要指的是那些內建在應用軟體中的工具或公式,主要的功用在於擔任簡化各種數據計算、處理和分析等任務。這些函數能幫助使用者在不需要自行撰寫複雜程式碼的情況下,快速得到所需的輸出與結果。在1970年代個人電腦開始盛行且普及,在此領域中的應用程式,諸如商用套裝軟體也開始漸露頭角,其中,由 Software Arts 開發的個人電腦商用套裝軟體VisiCalc在1979年上市,正是全世界第一個試算表套裝軟體,早於大家現在所熟悉的Microsoft Excel。當時的VisiCalc僅擁有許多實惠好用的內建函數,卻還沒有自訂函數的功能,然而,不可同日而語的現在,自訂函數儼然已成為Excel,乃至其他套裝體的重要進階應用與客製化能力。甚至,自訂函數也不見得是試算表領域應用程式的專利,在資料庫系統、數據分析應用程式、…也都有自訂函數的蹤影。
以下就列舉幾個大家熟習的應用軟體其函數的運用與範例:
1. 試算表軟體類的應用程式
諸如Microsoft Excel、Google Sheets、OpenOffice Calc這些應用軟體,都內建了SUM、IF、COUNT、…等等內建函數。
- =SUM(A1:A10)(計算 A1 到 A10 的總和)
- =IF(A1>10, "大於 10", "小於等於 10")(條件判斷)
其實,大多數的試算表軟體都內建了大量的函數,能夠幫助使用者進行數據運算、分析、資料處理與報表製作。常見函數包括:
- 數學與統計函數
- SUM():計算一組數字的總和。
範例:=SUM(A1:A10) 將 A1 至 A10 的數值相加。 - AVERAGE():計算平均值。
範例:=AVERAGE(B1:B10) 返回 B1 到 B10 的平均值。 - COUNT() / COUNTIF():計算數值或符合條件的單元格數量。
- SUM():計算一組數字的總和。
- 邏輯與條件判斷函數
- IF():根據條件返回不同的結果。
範例:=IF(C1>100, "高", "低"),根據 C1 的數值返回「高」或「低」。 - AND() / OR():進行多重條件判斷。
- IF():根據條件返回不同的結果。
- 文字處理函數
- CONCATENATE() 或 CONCAT():合併多個字串。
範例:=CONCATENATE("Hello", " ", "World") 返回 "Hello World"。 - LEFT(), RIGHT(), MID():從字串中提取部分文字。
- CONCATENATE() 或 CONCAT():合併多個字串。
- 日期與時間函數
- TODAY() / NOW():分別返回當前日期或日期時間。
- YEAR(), MONTH(), DAY():從日期中提取年份、月份或日。
- 財務函數
- NPV()、IRR():用於進行淨現值與內部報酬率的計算,常用於投資分析。
2. 資料庫管理系統(例如 SQL Server、MySQL、Oracle)
以SQL為例,內建函數主要用來進行數據查詢、統計與轉換。常見的函數包括:
- 聚合函數
- COUNT():計算記錄數量。
範例:SELECT COUNT(*) FROM Employees; 計算員工數量。 - SUM(), AVG(), MIN(), MAX():分別計算總和、平均值、最小值及最大值。
- COUNT():計算記錄數量。
- 日期與時間函數
- DATEADD(), DATEDIFF():用於在日期上進行加減或計算日期差異。
- GETDATE() / CURRENT_TIMESTAMP:返回當前日期和時間。
- 字串函數
- SUBSTRING():從字串中提取部分內容。
- CONCAT():連接兩個或多個字串。
- UPPER() / LOWER():轉換字串大小寫。
- 邏輯函數與條件語句
- CASE WHEN:根據條件返回不同結果。
- SQL 函數:
- SELECT COUNT(*) FROM Employees;(計算員工數量)
- SELECT AVG(Salary) FROM Employees;(計算平均薪資)

3. 商業智慧與數據分析工具(例如 Power BI、Tableau)等應用程式與服務
這類工具通常內建了強大的計算語言與函數庫,幫助使用者建立自定義計算欄位與度量值:
- Power BI(使用 DAX 語言)
- CALCULATE():修改上下文並計算表達式。
- FILTER():對資料集進行過濾,返回符合條件的子集。
- TOTALYTD(), SAMEPERIODLASTYEAR():進行時間智能分析,計算年度累計、去年同期等。
- SUM(), AVERAGE(), COUNT():與 Excel 類似的聚合函數。
- Tableau
- 計算字段(Calculated Fields):用戶可以創建自定義計算,例如計算利潤率、增長率等。
- 內建函數:如 DATEPART、DATEDIFF、IF、ZN(將 NULL 轉換成 0)等,幫助用戶處理日期、數值和條件判斷。
4. Microsoft Word的函數功能
即便是大家最耳熟能詳、最普及也最平凡的文書處理工具Microsoft Word也提供許多內建函數,透過公式欄位來進行基本的數值計算。譬如:=SUM(ABOVE) 可以對某一表格欄位上方所有數值求取總和;=AVERAGE(LEFT)函數則可以計算在當前儲存格左側的所有數字的平均值。其他常見函數還包括COUNT(), MAX(), MIN()、IF() 等等。
這些功能適用於製作報表或需要在文件中進行表格裡的數據處理與運算,其功能範圍自然無法與Excel相提並論。但是,Word建立表單時所涉獵到的控制項(欄位)與VBA編輯環境,也都可以看到內建函數的實例。
- 欄位代碼(Field Codes)
Word 支持使用欄位代碼來執行特定操作,不僅限於數學運算,還可以顯示日期、文件屬性等。這些欄位在某種意義上也可以看作是一種「函數」。 - VBA 自定義函數
如果需要更高級的計算或自動化功能,可以透過 VBA(Visual Basic for Applications)來撰寫自定義函數,進一步擴展 Word 的功能。