以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  请教字符串中 汉字、数字、英文字母 区分问题  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=9725)

--  作者:紫莲花
--  发布时间:2007/9/21 23:40:00
--  请教字符串中 汉字、数字、英文字母 区分问题
[这个贴子最后由紫莲花在 2007/09/21 11:50pm 第 1 次编辑]

egd文件下载

请教 "区号" "楼号" 列公式.


规则:

一\\地址中的"-" 前为区号和楼号.     汉字部分为区号. 数字(或英文)为楼号.  (有#号的,去掉#号)
例:
地址                   区号               楼号.    单元    楼层   门号
阳光馨园二期8#-222   阳光馨园二期         8        2      2      2
金世纪商业广场C-5#   金世纪商业广场       C


二\\地址中 ,第一位为英文的,英文部分,为区号.
例:
地址                  区号                 楼号
xq10-10-112           xq                   10

三\\地址中,第一位为数字的.第一个数字为区号.  "-"前全部数字为楼号.
例:
地址                   区号               楼号
934-312                9                  934

四\\若电话类别不是住宅.则区号\\楼号.为 "".


忘了说了。dhgl 表中,是原数据。  “效果”表中,是我手动输入的想要达到的效果 。
两表做了关联为了方便看到公式转换的结果。




-=-=-=- 以下内容由 紫莲花2007年09月21日 11:52pm 时添加 -=-=-=-
估计 Czy 版主又要批评我问题提的太长。要闪了。

这个问题说简单点就是:怎么区分字分串中的字母、数字、汉字。


--  作者:程兴刚
--  发布时间:2007/9/22 0:44:00
--  
呵呵,我说楼主是在出题吧!

    您采用列表项目手工输入区号、楼号,公式自动生成地址,这样的话输入不是更方便、系统运行还更快吗?

   相您这样用一个庞大的公式就是做到了,也影响系统速度,判断公式您就受不了!


--  作者:wjq1072
--  发布时间:2007/9/22 9:43:00
--  
楼主的题目和内容不符,没有深思吧?
地址和区号都有汉字怎么分开地址和区?你自己慢慢地研究去吧!
完成了不要忘记给大家共享哦:)!!
--  作者:紫莲花
--  发布时间:2007/9/22 11:48:00
--  
回复楼上两位朋友。

并非我在出题。

地址一列数据,出自旧系统(其它程序做出来的系统)。我现在想用易表做个新系统,将地址列 分成 区号 楼号 以及 单元 楼层 门号几项,方便统计。因原数据过多,完全用手工来导入旧数据,太过麻烦。所以,想个转换表,对旧数据进行一下转换,个别转换不准确的,再进行手工输入。单元、楼层、门号,几项,我已经写出公式,所以,在上传的文件中,做了隐藏列,免得看着太乱。

至于 WJQ 朋友所说的地址和区号里都有汉字,那是因为区号列的内容,本身就是地址数据中的一部分来的。就是地址中的汉字部分。又不完全是汉字。

我想了很长时间,想不出来办法,所以,才贴上来向大家请教 。

各位也没有什么好办法,那我只好自己再去想办法了。



-=-=-=- 以下内容由 紫莲花2007年09月22日 11:49am 时添加 -=-=-=-

再次感谢楼上两位朋友的热情回复!


--  作者:Czy
--  发布时间:2007/9/22 18:10:00
--  
这是一道难题,估计想直接在刷新公式中完全的难度相当大。
楼主罗列的四个条件在一条数据中有很多数据都包含了几条,所以判断关系比较复杂。

如果将符合条件的数据以字母进行分割,A-Z有26个字母,一个一个进行判断的话只能用eval。

好象上面提到的并不是太难,最难的要属这类数据“阳光丽园014-141”,粗略看了一下,对这类数据目前还没有一个很好的解决办法,除非借辅助列来完成。


--  作者:程兴刚
--  发布时间:2007/9/22 18:29:00
--  
[这个贴子最后由程兴刚在 2007/09/22 07:56pm 第 1 次编辑]

版主所言极是,英文字母还有大小写,地址数据几乎没有规律性,各段里面都有数字,单单一个#号,还有全角与半角!
--  作者:紫莲花
--  发布时间:2007/9/22 19:27:00
--  
是的.正如两位版主所言,原数据输入的极不规范。(示例中,是我从旧数据中挑出来的代表性的记录,对于每种同样输入方式的记录,都有好上百条。)所以,这次更换系统,我想把数据输入方式统一,避免再出现这种输入不规范、不方便统计的情形。

我想采用的办法是分段。将原来在一个格中输入的内容,拆分成几段输入。这就出现了对旧数据的拆分问题。我一直想能做个完整的转换系统,实现旧数据的平移,现在看来,要想所有的数据都平移,非常困难。也许反倒不如手工来的更直观更快捷了。只是要把需要转换的项都要记下来,避免有漏项。

这个贴子提到的问题,下午我试了一下用手工输入,区号还好解决。楼号,要麻烦一些。正象版主所言,如果加上所有的判断,数据转换时的运行都会困难。我打算,先把带汉字的地址筛选掉,然后对数字地址进行拆分了。再对汉字带楼号的进行处理。不带楼号的,转换为“”了。

谢谢各位版主的关注 。不用再把精力放在这个问题上了!


--  作者:程兴刚
--  发布时间:2007/9/22 20:42:00
--  
egd文件下载

费了半天劲,也就能够达到这个效果,暂时没有用Evl函数,先等楼主确认以后再改写!
       注;先将刷新公式写入,计算完毕删除,然后再结合手工修改个别的,也不失为一种办法!


--  作者:Czy
--  发布时间:2007/9/22 21:03:00
--  
下面引用由程兴刚2007/09/22 08:42pm 发表的内容:
费了半天劲,也就能够达到这个效果,暂时没有用Evl函数,先等楼主确认以后再改写!
注;先将刷新公式写入,计算完毕删除,然后再结合手工修改个别的,也不失为一种办法!

不错!
针对表中目前的数据应该可以了,只是缺少通用性,一旦出现无规律的其它字符还是会出错。
--  作者:紫莲花
--  发布时间:2007/9/22 22:35:00
--  

我将程版的公式放入我的文件,用全部数据进行测试.发现对于地址为数字形式的,拆分准确,汉字地址,拆分,还是有不准的地方,就如CZY 版主所言,文件中还包含有示例文件中所没有的文字,造成准确度的下降.仍有很多数据需要进行手工的调整.

再次感受到不规范数据带来的麻烦.更加大了我要规范数据的信心.

感谢程版花费时间帮我做出的公式, EVAL 的转换,就不用再做了.

原数据太不规范.即使做出EVAL 版的,恐也无法提高转换的准确度.

所以,我觉得在现有转换的基础上进行手工修改就可以了.

再次感谢两位版主的帮助.