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






