我們用過(guò)excel做過(guò)公司報(bào)表,做過(guò)成績(jī)表,做過(guò)工資表,甚至用excel來(lái)炒過(guò)股,今天更牛逼的是用excel來(lái)制作復(fù)雜的公交向?qū)В?/p>
根據(jù)站名代碼和路線名代碼把在預(yù)處理工作簿Sheet1工作表的各路線的路線名和站名在Sheet3轉(zhuǎn)化為用數(shù)字化路線表。得到了無(wú)論是直達(dá)的還是通過(guò)一次轉(zhuǎn)車達(dá)到目的站的公交路線的代碼后可從表1和表3得到包含上下車站的該公交路線所經(jīng)車站,列在表4的B到H列,并用條件格式以不同的顏色顯示上下車車站和換車站。
一、給所有站名和線路名編碼
1、把公交路線表復(fù)制到一工作簿(下稱預(yù)處理工作簿)的Sheet1工作表,該公交線路表中的站名間是用符號(hào)“—”連接的,所以可用“數(shù)據(jù)”菜單中的“分列”選項(xiàng)使每一路線的所用站名相繼占用同一行中的一個(gè)單元格,然后對(duì)所有路線都進(jìn)行上述操作。在路線名和站名間插入一列,給每個(gè)路線名賦予一個(gè)3位數(shù)的代碼。
2、在預(yù)處理工作簿Sheet2工作表對(duì)上述所有站名篩選出不重復(fù)的站名,再對(duì)這些站名中的漢字名規(guī)范化,即去掉各種空格,再篩選出不重復(fù)的站名。給每個(gè)站名賦予一個(gè)4位數(shù)的代碼。
二、建立數(shù)字化公交路線表
三、創(chuàng)建數(shù)字化經(jīng)過(guò)各車站所有公交路線表
1、把Sheet3中每一路線的站名代碼與路線名代碼用CONCATENATE()函數(shù)連接起來(lái),放在Sheet4中,然后對(duì)所這些由CONCATENATE()函數(shù)連接起來(lái)的7位數(shù)按大小進(jìn)行排序。
2、Sheet4中經(jīng)排序后的數(shù)字列放在Sheet5的A列,把Sheet2的篩選出的不重復(fù)的站名的代碼復(fù)制到B列,A列中前4位數(shù)相等的所有單元格的后3位數(shù)所代表的路線即為所有經(jīng)過(guò)前4位數(shù)所代表的站的路線。這樣對(duì)B列中的每一站可用MATCH、RIGHT等函數(shù)列出所有經(jīng)過(guò)每一車站公交路線代碼。這些代碼分別排列在C列及C列后。
四、建立公交向?qū)Чぷ鞑?br />公交向?qū)Чぷ鞑驹O(shè)4張工作表,工作表名分別為1、2、3、4。
1、把預(yù)處理工作簿Sheet1路線名復(fù)制到公交向?qū)Чぷ鞑镜谋?的B列,路線名的代碼復(fù)制到A列和C列。
2、把預(yù)處理工作簿Sheet2站名復(fù)制到公交向?qū)Чぷ鞑镜谋?的E列,站名的代碼復(fù)制到D列和F列。
3、把預(yù)處理工作簿Sheet5數(shù)字化經(jīng)過(guò)各車站所有公交路線表復(fù)制到表2。
4、把預(yù)處理工作簿Sheet3數(shù)字化路線表復(fù)制到表3。
5、表4根據(jù)表1到表3數(shù)據(jù)查詢起始站和到達(dá)站查詢乘車路線或換乘路線。
五、查詢表的設(shè)計(jì)
1、直達(dá)路線的查詢
表4的AL列為所有車站的站名,A3和A5單元格為經(jīng)“有效性”處理上下車車站的站名。I2、I3單元格為A3和A5單元格內(nèi)站名的代碼。J、K列為所有經(jīng)過(guò)上下車車站的各公交路線的代碼。L列是J、K列數(shù)據(jù)按大小排列成一列,M列是對(duì)L列各路線出現(xiàn)次數(shù)進(jìn)行計(jì)數(shù),如某一路線出現(xiàn)兩次,則該路線必定通過(guò)起始站和到達(dá)站即起始站和到達(dá)站間有直達(dá)路線。N列為查找所有直達(dá)路線所在表中的行數(shù),O列則為相應(yīng)的路線的代碼,因此,O列中大于零的個(gè)數(shù)即為起始站和到達(dá)站間可直達(dá)的路線數(shù)。
2、經(jīng)一次轉(zhuǎn)車能到達(dá)的路線的查詢
經(jīng)一次轉(zhuǎn)車能到達(dá)的路線就是要找到兩條路線,其中一條經(jīng)過(guò)起始站一條經(jīng)過(guò)到達(dá)站且這兩條路線要相交,這交點(diǎn)即為換車站。查找的途徑是:列出所有經(jīng)過(guò)上下車車站的各公交路線(其代碼代碼在J、K列)所經(jīng)過(guò)的全部車站,AG、AH兩列分別為經(jīng)過(guò)按大小排列的上下車站的代碼。AI列為AG、AH兩列共有的車站,即換車站。換車站可能不止一個(gè)。P列為經(jīng)過(guò)這換車站的所有公交車的路線的代碼,Q、R列分別為經(jīng)過(guò)上下車站的公交車的路線的代碼。因此Q、R列中每一對(duì)代碼即代表了通過(guò)上下車站且有交點(diǎn)的兩條公交路線。