易表在线答疑技术与交流用户社区 → 如何检测某列内容没有重复数据?


  共有13400人关注过本帖树形打印复制链接

主题:如何检测某列内容没有重复数据?

帅哥哟,离线,有人找我吗?
wjq1072
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2008/2/15 12:22:00 [只看该作者]

你讲的已经清楚了,就是汉字和其他半角、全角符号都不容易哦!原因是汉字和其他半角、全角符号太多啦!!

-=-=-=- 以下内容由 wjq10722008年02月15日 00:23pm 时添加 -=-=-=-
就我的水平是无能为力啦!

 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2008/2/15 12:40:00 [只看该作者]

第一列中每行的最多字符数能达到多少?

 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2008/2/15 13:18:00 [只看该作者]

试试这个公式行不行?

Eval("If(Len([第一列])-Len(Substitute([第一列],"""+Substitute(Substitute(Substitute(Format([第一列],Rept("|@",Len([第一列]))),"|","",1)," |",""),"|",""","""")) > 1 Or Len([第一列])-Len(Substitute([第一列],""")+""","""")) > 1,"""",""*"")")

如果出现函数嵌套,可改为。
表达式变量公式:
Substitute(Substitute(Format([第一列],Rept("|@",Len([第一列]))),"|","",1)," |","")

原公式改成:

Eval("If(Len([第一列])-Len(Substitute([第一列],"""+Substitute([%表达式变量%]," |",""),"|",""","""")) > 1 Or Len([第一列])-Len(Substitute([第一列],""")+""","""")) > 1,"""",""*"")")


 回到顶部
帅哥哟,离线,有人找我吗?
fsrsj
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:12 积分:0 威望:0 精华:0 注册:2008/2/14 17:31:00
  发帖心情 Post By:2008/2/15 13:47:00 [只看该作者]

谢谢czy 总版主。
你的第一个公式就对了,后写的不知为何提示“表达式中存在语法错误”。
怎样才能正常呢,前一个是出现了嵌套,后一个比较简练。

 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2008/2/15 14:03:00 [只看该作者]

13楼的公式还存在问题,公式得重写。

 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2008/2/15 14:34:00 [只看该作者]

不好意思,今天感冒发烧,昏沉沉的公式不知做的对不对。

egd文件下载


 回到顶部
帅哥哟,离线,有人找我吗?
fsrsj
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:12 积分:0 威望:0 精华:0 注册:2008/2/14 17:31:00
  发帖心情 Post By:2008/2/15 14:43:00 [只看该作者]

再次感谢,完全正确。
你是怎么想出来的,只有一句的表达式限制,我是怎么也弄不上来,用多行程序我倒会写,可没有这样方便简单。

 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2008/2/15 14:43:00 [只看该作者]

再改一下,表达式变量公式:
Substitute(Substitute(format(Lower([第一列]),Rept("|@",Len([第一列]))),"|","",1)," |","")

刷新公式:
eval("If(Len([第一列])-Len(Substitute(Lower([第一列]),"""+Substitute(Substitute(Eval("Substitute(""|@|"",""|"","""+Substitute([%表达式变量%],"|",""")+""|""+Substitute(""|@|"",""|"",""")+""")"),"@",""",""""))>Len("""),"|",""") or Len([第一列])-Len(Substitute(Lower([第一列]),""")+"""),"""",""*"")")

做出完全符合楼主要求有难度,因为全角半角字符不易区分,抛砖引玉,希望能看到更好的解决办法。


 回到顶部
帅哥哟,离线,有人找我吗?
fsrsj
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:12 积分:0 威望:0 精华:0 注册:2008/2/14 17:31:00
  发帖心情 Post By:2008/2/15 16:26:00 [只看该作者]

czy总版主做到这个份上已属不易,已经够简练了。
那我们就假定,数据只是汉字一种,这样就可省去判断单双字节的啰嗦。对吗?

-=-=-=- 以下内容由 fsrsj2008年02月15日 04:58pm 时添加 -=-=-=-
一个思路是把每个字符与剩下的字符串相比较,只要有重复即结束比较。

 回到顶部
帅哥哟,离线,有人找我吗?
fsrsj
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:12 积分:0 威望:0 精华:0 注册:2008/2/14 17:31:00
  发帖心情 Post By:2008/2/15 17:14:00 [只看该作者]

谢谢wjq1072高手:
您的公式对已知数据的全部集合时是完全正确的,只是我未说明白,当数据的集合太大时,如汉字,这样就无法适应了。我有思路,但不会写公式,就是按位将待判数据逐个取出与余下的比较,只要遇到相同的即结束比较,都未遇到相同的就打上“*”号。


 回到顶部
总数 40 上一页 1 2 3 4 下一页