寫在前面:
概念是用來了解的,不是用來恐懼的。一時無法理解,大可不求甚解,無需刻意強求,往後學習函數的時間裡,通過實例人的潛意識會反複思考,隻要學習的過程持續不斷,概念性的東西自然而然也就理解了——你的朋友,看見星光。
1,函數的結構
我們上一章說函數是Excel内部預先定義的、能夠按照特定順序和結構來執行運算任務的功能模塊。
這句話怎麼理解呢?
由于函數是Excel内部預先定義好的,我們能夠使用它,但正常情況下不能修改它,不正常情況是指直接修改Excel的源代碼,很明顯,這不是一般人能幹的事兒。
每一個函數都擁有自己的結構,通常是由表示公式開始的等号、函數名稱、左括号、以半角逗号相間隔的參數以及右括号組成。
我們上面提到了個詞,叫參數。
參數是函數最重要的組成部分,分為可選參數和必需參數。
在函數語法中,可選參數一般使用一對中括号"[]"包括起來。
比如耳熟能詳的SUM函數,它的語法如下。
如官方文件所說,SUM函數最多可以支持255個參數,第一個參數是必須的,其餘的244個都是可選的,可以根據實際情況選擇是否省略。
舉個例子。
在Excel中輸入公式:
=SUM()
此時我們沒有提供任何參數,直接回車,系統會彈出如下所示的消息提示框,啰哩啰唆一大堆,但意思無非就是你一定得給SUM一個參數,不然它就和你過不去。
那麼是不是每個函數都必須有參數呢?
隻能說大部分如此,極個别例外。比如公式=TODAY(),它并不需要參數,默認返回當前的日期。
作為函數最重要的組成部分,參數可以由數值、日期、文本、邏輯值等元素構成,也可以使用引用、其它函數、數組等。
比如公式=IF(A1>80,"優秀",IF(A1>60,"不及格","不及格"))
第二個IF函數是第一個IF函數的嵌套函數。
但是,别動!什麼是引用?什麼是數組?什麼是邏輯值、文本值、錯誤值?我聽不懂,你前面也沒講過啊?
好吧,那我們就來講一下。
……
2,函數中的數據類型
如果說函數是設置好的功能模塊,那它就好比種類不同的廚具,有的是微波爐,有的是高壓鍋,炒鍋,熱水壺,擦布……
而數據便好比不同的食材,擁有不同的類型,有的是水,有的是青菜,大米,牛肉……
不同的食材當然有不同的烹饪方法,我們不能把大米放到擦布上去煮熟,也不能把青菜放到熱水壺裡去烹饪……
所以,了解數據類型對于函數學習來說就是非常必要的事。
在函數公式中,按照不同的标準數據可以被劃分為不同的類型。
這就好比食材既可以按照産地可以分為山東的、河北的、胡建的,也可以按照其他标準劃分為海鮮和非海鮮,生的、熟的,有機的……
1)按照來源,數據可以分為引用和非引用。
引用通常是指單元格引用。比如公式:=SUM(A1:A8,20)。A1:A8是引用,20則不是。
2)按照函數運算過程中是否發生變化,可以分為變量和常量。
常量就是不會變的數據,變量與之相反。
同樣以公式=SUM(A1:A8,20)為例,20是常量,無論公式如何運算,它都不會改變。A1:A8是變量,它會根據A1:A8單元格内數據的改變而改變。
3)按照數據類型,又可以劃分為數值、日期、文本、邏輯值和錯誤值等。
這個是重點,我們需要點杯奶茶好好聊一聊。
Ⅰ 數值
數值是指代表數量的數字形式,比如學生的成績,個人的身高體重,數值可以是正數,負數、也可以是小數和百分比。
但需要說明的是,在現實中,數字的大小可以無窮無盡,但在Excel中,由于軟件自身的限制,能夠保存的數字最大隻能精确到15位有效數字。
超過15位會怎麼樣?
Excel會自動将15位以後的整數變為零。比如123 456 789 123 456 789(18位),Excel會顯示為123 456789 123 456 000。
此外,如果大于15位的有效數字是小數,Excel會毫不猶豫的直接舍棄,Excel可是擁有上百億單元房産的土豪,怎麼可能在意那幾毛錢。
可能有小夥伴就說了,你胡說,那我表格裡的18位身份證是怎麼回事?它後三位沒變成0啊!!
這是因為身份證是以文本形式保存的,他隻是看起來是數值,但其實良心大大的壞了,是個文本的家夥。
Ⅱ 日期和時間
在Excel中,日期和時間是以一種特殊的數值形式儲存的,這種數值形式又被稱為“序列值”。
在MS操作系統所有的Excel版本中,日期系統默認為“1900年日期系統”。也就是以1900年1月1日作為序列值的基準日,這一天的序列值記為1,此後的日期以此遞增。比如1900年1月15日的序列值是15,2019年6月20日的序列值為43636。
在Excel中,最小的日期是1900年1月1日,序列值為1。最大日期是9999年12月31日,序列值是2 958465。
由于日期是以數值的形式儲存的,所以它可以直接參與加減乘除的數值運算,這意味着着什麼呢?
如果我們要計算兩個日期之間相差的天數,直接相減就可以了:
但和數值不同的是,當日期以常量的形式出現在公式中時,必須使用半角雙引号包裹起來。
比如我們要計算2019年6月20日的100天以後是什麼日期,可以使用公式:
="2019-6-20" 100
說完了日期,再說下時間。
對于日期來說,1天的數值單位就是1,那麼1小時就可以表述為1/24,同理,1分鐘可以表述為1/24/60。
也就是說,一天中的每一個時刻都可以由小數形式的序列值來表示。比如,中午12點也就是0.5(1天的一半1/2)。
同日期一樣,時間也可以直接參與加減乘除的數值運算。當時間以常量的形式出現在公式中時,同樣必須使用半角雙引号包裹起來。
例如一個人淩晨6點28分開始加班,早晨9點56分下班,他加班的時長是多少呢?
公式:
="9:56"-"6:28"
結果是3小時28分。
Ⅲ 文本
文本又稱字符串,是指包含非數值字符的數據。比如學生的名字、考試科目等。除此以外,也包含以文本形式保存的數值,例如身份證号碼等。
當文本出現在公式中時,必須使用半角雙引号包括起來。比如計算 麻煩他媽罵麻煩他爸真是麻煩死了 有幾個字符?
公式如下:
=LEN("麻煩他媽罵麻煩他爸真是麻煩死了")
結果為15
非數值型的文本,不能參與數學運算,否則返回錯誤值。
數值型的文本可以參與數學運算,但會被轉換為真正的數值。
Ⅳ 邏輯值
邏輯值隻有兩個。一個FALSE,另外一個是TRUE。FALSE為假,TRUE為真。
邏輯值可以直接參與數學運算,此時TRUE等同于1,FALSE等同于0。
例如公式=TRUE 1,等同于公式=1 1,結果為2。公式=FALSE 1,等同于公式=0 1,結果為1。
關于邏輯值,我們等講到邏輯函數IF時再細聊。
Ⅴ 錯誤值
錯誤值有多種形式,常見的有#VALUE!、#N/A等。不同的錯誤值具有不同的含義,但這對新人來說這暫時不重要,同樣留到以後再說吧。
這4種數據類型(日期可以視為數值)如果打起架來,誰大誰小呢?
數值<文本<FALSE<TRUE
真愛無敵,天上地下唯TRUE最大。
錯誤值呢?錯誤值去哪了?讓它也來打架啊!
别激動,錯誤值是個錯誤,不能參與排序,否則大家都會成為錯誤。
比如=#N/A<TRUE,結果為錯誤值#N/A
……
深吸一口氣,最後一個問題,什麼是數組呢?
數組是由一到多個元素構成的有序集合,元素可以是數值、文本、邏輯值甚至是錯誤值。
數組是Excel函數進階後的一個知識點,我們這兒暫時隻了解一下必須知道的部分,比如常量數組。
常量數組顧名思義是由常量構成的數組,并使用大括号{}在首尾進行标識。例如:
{1,"excel",2,"學習"}
需要注意的是,常量數組隻能由常量組成。比如={sum(a:a),1},常量數組中放置了函數,是不允許的。
數組如果按照維度劃分,又可以分為一維數組、二維數組和三維數組。
一維就是單行或單列的數組。
單行數組元素之間使用半角分号間隔,例如={"a","b","c","d"}
單列數組元素之間使用半角逗号間隔,例如={1;2;3;4;5}
我去,一會逗号,一會分号的,怎麼區分呢?
分号;是不是有兩層?上面一個點,下面一個逗号,所以它代表行(單列數組是有多行組成的)。而逗号沒有分層的模樣,所以它代表列。
二維數組就是由行列兩個方向構成的數組,例如
={1,"a";2,"b";3,"c"}
這是一個兩列三行的二維數組。一共有兩個分号,所以是三行(最後一行不用标注分号),每行有一個逗号,所以是兩列。
三維數組就是由不同工作表的單元格或區域構成的數組。通常而言,函數數組最高隻有三維。
……
3,函數的分類
聊完了函數中的數據類型,最後我們再來簡單聊下函數的分類。
按照不同來源,Excel函數可以分為内置函數(系統自帶的)、自定義函數(VBA編寫的)以及宏表函數(古老的Excel 4.0的函數,需要通過定義名稱才能使用)
内置函數是我們日常工作和學習中最為常用的,也是我們學習的重點。按照不同的功能,内置函數可以分為文本函數、邏輯函數、查找與引用函數、日期與時間函數、統計函數等。大都人如其名,從名字就可以看出其作用了。
兩杯奶茶喝完了,今天就這樣吧。
揮手緻安,下期再見。
……
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!