在Excel中使用正規表示法(Regular Expression)進行資料篩選(六)

在Excel中使用正規表示法(Regular Expression)進行資料篩選(六)

在Excel中使用正規表示法(Regular Expression)進行資料篩選(五)中我們將報表進行規律化,規律化之後可以方便我們利用程式將報表中的資料擷取為行列格式的資料表。除了報表資料規律化,以(範例檔案)為例我們還必須知道報表中每一個教師課表的起迄範圍,知道課表起迄範圍才可以將同一教師課表資料進行標記,目標是將報表中每一個老師的課表資料擷取重建如下表之行列資料表。
教師姓名 授課科目 授課班級 授課時間 授課日期
劉來恆 英文 604 1 5
劉來恆 英文 606 1 4
劉來恆 英文 606 2 4
劉來恆 英文 605 2 2
劉來恆 英文文法 605 2 1
劉來恆 英文 606 3 5
劉來恆 英文文法 604 3 4
劉來恆 英文文法 606 3 3
劉來恆 英文文法 606 3 1
劉來恆 英文 605 4 5
劉來恆 英文 605 4 4
劉來恆 英文教學 1 4 1
劉來恆 英文 605 5 4
劉來恆 英文文法 605 5 3
劉來恆 英文教學 1 5 1
劉來恆 英文 604 6 3
劉來恆 英文 604 6 2
劉來恆 英文輔 604 7 4
劉來恆 英文輔 606 7 3
劉來恆 英文輔 605 7 2

從報表中我們可以看出來,每一個老師的課表開頭在第一欄都有以下這個資料格。

清水高中教師課表

所以可用這個資料格做為旗標,來標定報表上每一個教師的課表範圍,我們可以進行篩選將第一欄每一個含有『清水高中教師課表』的資料格選取標記,標記以下的資料範圍再利用程式擷取出來。

執行的流程

1.先將報表最後複製加上一個教師課表,此表中每一個資料格改標示其所代表的資料內容,因為擷取之後我們要進行資料分類。如以下標記,沒有需要的資料清除保留空白。此課表資料放在報表最後,在進行轉換時最後一筆即為此資料。

image

2.再執行『資料處理過濾增益集』/『正規比對資料過濾』/『工作表資料篩選』進行篩選,將有『清水高中教師課表』的資料格選取。

 image image

篩選結果:image

3.再點選『資料處理過濾增益集』/『正規比對資料過濾』/『報表資料擷取』,在按下『資料定位範圍』參數的『選取』鈕將步驟2篩選的資料選取。再選取一個教師課表的資料範圍,例如選取第一位老師陳大成的課表以它為範例擷取,擷取的資料會標記其在這個資料範圍的相對欄位與列位。

 

image   image

按下確定鈕,在『指定資料表名稱』輸入要放置擷取出來的工作表

image

4.結取完成共有84個課表資料

 image

5.結取出來的資料表如下,報表號是指擷取課表序號,最後一個課表(編號83)是我們加上的標記資料,標記每一格資料所代表的資料。

image image

6.再利用『資料處理過濾增益集』/『正規比對資料過濾』/『工作表資料擷取』將最後一個報表編號的資料對應至每一個老師的資料。

image

報表號 資料內容 所在欄位 所在列位 資料對應
0 0 1 10  
0 0 9 54 輔導課鐘點
0 0 1 72  
0 1 1 15  
0 1 1 77  
0 2 1 20  
0 2 5 54 基本鐘點
0 2 1 82  
0 3 1 25  
0 3 7 54 兼課鐘點

待續…

cool      歡迎引用,請注明來源出處!

作者:楊煥謀