結果範例:功能變數示範:自動計算學年度、學期
注意:
1.如果您只是想找工具來節省時間,要大概了解修改方法,令符合您的需求。
2.不要用瀏覽器檢視,請下載後用Word 開啟。
如果你對功能變數完全不熟,可以參考:Office Word 2007/2010/2013 應用技巧:「功能變數」使用入門 插入(頁碼)/(總頁碼),大概上手再來這裡。在範例教學文裡,你會接觸到「功能變數」IF、Compare 、=(Formula) 十分進階用法,需要到一些邏輯觀念。如果你接觸任一門高階程式語言,這些觀念對你而言只是小case;如果碰過也沒關係,伊文會在這篇教學裡詳細的解說。
根據台北市政府教育局提供的資料:按此下載,參考奇摩知識+:2011年國中是第幾學年度? 得到民國103 年,的學年度計算方式如下:
*1/21 當天屬於102學年度 第二學期,9/1 當天屬於103學年度 第一學期
*伊文是在民國103年9月撰寫這篇文章,以當時的時間點為範例,如果你在未來看到這篇文章,需要自行舉一反三,我的結果範例還是會計算正確,如果教育局更改學期、學年度的時間點,就要會修改功能變數。
這篇文章分為三個部分:
1.「If」的用法。
2.「Compare」的用法。
3.範例「學年度計算」。
1.功能變數 IF 的用法:
Word 會提示你IF 的使用方法,請注意語法之間的空格。
{ IF 表示式1 運算元 表示式2 結果為真的文字 結果為假的文字 }
表示式1、表示式2 :您要比較的值。這些表示式可以是合併功能變數資料、書籤名稱、字元字串、數字、傳回值的巢狀功能變數(就是功能變數包功能變數,好像包水餃,等會我們就會用到)或數學公式(就是=(Formula) 的功能,等會我們用到會詳細講解)。
如果表示式包含空格,請用引號 " " 括住表示式(如果你對寫程式有點興趣,伊文建議養成好習慣,通通括起來 )。引用:功能變數代碼:IF 功能變數 ,微軟給你一些簡單的範例: IF 功能變數範例。
運算元表,建議稍稍記憶一下:
運算元 | 描述 |
= | 等於 |
<> | 不等於 |
> | 大於 |
< | 小於 |
>= | 大於或等於 |
<= | 小於或等於 |
舉些子例:
9 > 5 | 結果為真 |
10 < 18 | 結果為真 |
1.1 > 2.5 | 結果為假 |
7 <> 7 | 結果為假 |
"伊文" = "周杰倫" | 結果為假 |
2.功能變數 Compare 的用法:
{ COMPARE 表示式1 運算元 表示式2 }
Compare 功能變數代碼會比較兩個值,如果比較結果為真,則顯示結果 "1",如果比較結果為假,則顯示 "0" (零)。引用資料:功能變數代碼:Compare 功能變數
小觀念,看到 「 表示式1 運算元 表示式2」 這個部分是個邏輯判斷, 會產生結果,就是「真」(true, 簡寫T)或「假」(False, 簡寫T);也有傳回值,1代表「真」,0代表「假」。
3.範例「學年度計算」開始了!!
對照上面時間圖和下面的邏輯圖,利用功能變數取得系統日期;經由第一個程序判斷,如果月份大於等於9月,就顯示:「103學年度 第一學期」。如果不是,第二個程序判斷,月等於1和日小於21必須同時成立,則顯示:「102學年度 第一學期」,否則顯示:「102學年度 第二學期」。
*碰到一個「功能變數」包另一個「功能變數」的狀況,不能直接撰寫 ,要用取代或貼上。
第一步,「插入」->「快速組件」->「功能變數」,在「類別 (下拉式選單)」找「文件自動化」,在「功能變數名稱」點選「If」
在「功能變數代碼」輸入以下文字~
按下Alt+F9以顯示語法:{ IF 月份 >= 9 "X學年度 第一學期" "N" }(語法1)
*注意:「月份」、「X」、「"N"」,只是暫時插入的代號,用什麼代號不重要,接下來要把它們置換成其他的「功能變數」。
第二步,現在需要日期月份的部分,只要數字,因為要用來比大小。
參考下圖,滑鼠選取(語法1)「月份」,插入一的「Date」功能變數,修改「日期格式」為「M」。
*小技巧:如果你不知道「日期格式」代碼,可以參考「日期格式」下面的那些範例,再刪除不必要的部分。
按下Alt+F9顯示語法:
{ IF { DATE \@ "M" } >= 9 "X學年度 第一學期" "N" }(語法2)
紅色highlight的部分,就是剛剛插入的語法。
第三步,跟上面操作類似,把(語法2)的「X」選取,再插入一個 「Date 功能變數」,改日期格式:e,取得民國年份,X就被置換掉,如下(語法3)。
{ IF { DATE \@ "M" } >= 9 "{ DATE \@ "e" }學年度" 第一學期" "N" }(語法3)
土黃色的部分,就是剛剛插入取得年份的語法。
先把(語法3)放在那別管,換行找個文件空白處,我們還要寫別的功能變數貼入(語法3)來包水餃。
第四步,現在要寫第二個判斷程序。模仿第一步,插入以下功能變數語法,有上述練習如法炮製,不放圖囉!
{ IF "比較" = 1 "X學年度 第一學期" "X學年度 第二學期" }(語法4)
接下來我們要陸陸續續把「"比較"」、「X」分別置換成功能變數。
(語法4)的水餃皮做好,先放在那,換行找個文件空白處。
第五步,找文件的空白處,如下圖,插入Compare的功能變數。
{ COMPARE Y1 < 21 }(語法5)
第六步,如下圖,插入「日期功能變數」置換「Y1」
{ COMPARE { DATE \@ "d" } < 21 }(語法6)
(語法6)是水餃的餡料,先把放在那,換行找個文件空白處。
第七步,接下來再插入以下「功能變數」,操作方式和上面很類似,伊文就不再用圖片導引。
{ COMPARE { DATE \@ "M" } = 1 }(語法7)
(語法7)也是水餃餡料,先把放在那,換行找個文件空白處。
第八步,談談「= (Formula)」的功能,可以做數學計算,插入函數可以做平均、總和、最大值、最小值,還可以做到邏輯運算,這次就要用它的「AND」函數,來做到邏輯判斷。可以功能變數代碼:= (Formula) 功能變數
月等於1和日小於21必須同時成立,先插入一個「且」的邏輯判斷,AND(x,y):邏輯運算式 x 和 y 均正確,傳回數值 1;如果任何一個運算式錯誤,則傳回數值 0 (零)。
按圖操作,在文件插入且函數(語法7)。
{ =AND(1,1) }(語法8)
(語法7)是真的馬上可以計算出東西,會在文件上出現「1」。
第九步,如下圖分別將(語法6)和(語法7)取代(語法8)
下面就是做好的小水餃語法:
{ =AND({ COMPARE { DATE \@ "d" } < 21 }, { COMPARE { DATE \@ "M" } = 1 }) }(語法9)
你可以大概看看他的功能在那裡?
第十步,現在又要出動「= (Formula)」了,要將現在的年份減1,用它來執行數學計算。
{ =D-1 } 的D置換成{ DATE \@ "e" }形成:{ = { DATE \@ "e" } - 1 } (語法10)
第十一步,眼睛張大,看看下面張圖,我們要包一顆很大的水餃,將(語法9)和(語法10)取代與(語法4)部分文字。
包完之後的語法如下:
{ IF { =AND({ COMPARE { DATE \@ "d" } < 21 }, { COMPARE { DATE \@ "M" } = 1 }) } = 1 "{ = { DATE \@ "e" } - 1 }學年度 第一學期" "{ = { DATE \@ "e" } - 1 }學年度 第二學期" }(語法11)
看看邏輯圖,我們的進度,總之,快完成了!
第十二步,用(語法11)取代(語法3)
恭喜!到這裡已經完成了,亮黃色的部分是剛剛取代完成的語法,下面這一大串語法可以自動取得學年度和學期,服用它可以達到提早下班的效果!
{ IF { DATE \@ "M" } >= 9 "{ DATE \@ "e" }學年度 第一學期" { IF { =AND({ COMPARE { DATE \@ "d" } < 21 }, { COMPARE { DATE \@ "M" } = 1 }) } = 1 "{ = { DATE \@ "e" } - 1 }學年度 第一學期" "{ = { DATE \@ "e" } - 1 }學年度 第二學期" } }(語法12)
不得不抱怨一下,功能變數的介面不是很好,難免語法擠在一起,看起來十分頭大,這點各位得多花點心思了~!
沒有留言:
張貼留言