如何用Excel制作公交向导

来源:转载

 我们用过excel做过公司报表,做过成绩表,做过工资表,甚至用excel来炒过股,今天更牛逼的是用excel来制作复杂的公交向导!

 

根据站名代码和路线名代码把在预处理工作簿Sheet1工作表的各路线的路线名和站名在Sheet3转化为用数字化路线表。得到了无论是直达的还是通过一次转车达到目的站的公交路线的代码后可从表1和表3得到包含上下车站的该公交路线所经车站,列在表4的B到H列,并用条件格式以不同的颜色显示上下车车站和换车站。

一、给所有站名和线路名编码

1、把公交路线表复制到一工作簿(下称预处理工作簿)的Sheet1工作表,该公交线路表中的站名间是用符号“—”连接的,所以可用“数据”菜单中的“分列”选项使每一路线的所用站名相继占用同一行中的一个单元格,然后对所有路线都进行上述操作。在路线名和站名间插入一列,给每个路线名赋予一个3位数的代码。

2、在预处理工作簿Sheet2工作表对上述所有站名筛选出不重复的站名,再对这些站名中的汉字名规范化,即去掉各种空格,再?选出不重复的站名。给每个站名赋予一个4位数的代码。

二、建立数字化公交路线表

三、创建数字化经过各车站所有公交路线表

1、把Sheet3中每一路线的站名代码与路线名代码用CONCATENATE()函数连接起来,放在Sheet4中,然后对所这些由CONCATENATE()函数连接起来的7位数按大小进行排序。

2、Sheet4中经排序后的数字列放在Sheet5的A列,把Sheet2的?选出的不重复的站名的代码复制到B列,A列中前4位数相等的所有单元格的后3位数所代表的路线即为所有经过前4位数所代表的站的路线。这样对B列中的每一站可用MATCH、RIGHT等函数列出所有经过每一车站公交路线代码。这些代码分别排列在C列及C列后。

四、建立公交向导工作簿

公交向导工作簿设4张工作表,工作表名分别为1、2、3、4。

1、把预处理工作簿Sheet1路线名复制到公交向导工作簿的表1的B列,路线名的代码复制到A列和C列。

2、把预处理工作簿Sheet2站名复制到公交向导工作簿的表1的E列,站名的代码复制到D列和F列。

3、把预处理工作簿Sheet5数字化经过各车站所有公交路线表复制到表2。

4、把预处理工作簿Sheet3数字化路线表复制到表3。

5、表4根据表1到表3数据查询起始站和到达站查询乘车路线或换乘路线。

五、查询表的设计

1、直达路线的查询

表4的AL列为所有车站的站名,A3和A5单元格为经“有效性”处理上下车车站的站名。I2、I3单元格为A3和A5单元格内站名的代码。J、K列为所有经过上下车车站的各公交路线的代码。L列是J、K列数据按大小排列成一列,M列是对L列各路线出现次数进行计数,如某一路线出现两次,则该路线必定通过起始站和到达站即起始站和到达站间有直达路线。N列为查找所有直达路线所在表中的行数,O列则为相应的路线的代码,因此,O列中大于零的个数即为起始站和到达站间可直达的路线数。

2、经一次转车能到达的路线的查询

经一次转车能到达的路线就是要找到两条路线,其中一条经过起始站一条经过到达站且这两条路线要相交,这交点即为换车站。查找的途径是:列出所有经过上下车车站的各公交路线(其代码代码在J、K列)所经过的全部车站,AG、AH两列分别为经过按大小排列的上下车站的代码。AI列为AG、AH两列共有的车站,即换车站。换车站可能不止一个。P列为经过这换车站的所有公交车的路线的代码,Q、R列分别为经过上下车站的公交车的路线的代码。因此Q、R列中每一对代码即代表了通过上下车站且有交点的两条公交路线。

分享给朋友:
您可能感兴趣的文章:
随机阅读: