string - 识别具有重复字符串的单元格
问题描述
有时一个人会输入 9999999999999999 或 0000000000 8999999998888888,...而不是输入他们的身份证号。我想要一个列来识别这些情况,这意味着输入单个字符串(在本例中为数字字符串)超过 7 次的情况。
我不知道该怎么做.. 我最好的猜测是使用 len 计算每个数字,但这将至少打开 10 个 IF 语句......有什么建议吗?
解决方案
我们可以找到最大位数如下(作为计算列):
MaxDigitCount =
VAR n = LEN ( [ID] )
VAR Digits =
ADDCOLUMNS ( GENERATESERIES ( 1, n ), "@D", MID ( [ID], [Value], 1 ) )
VAR Frequencies =
GROUPBY ( Digits, [@D], "@Freq", COUNTX ( CURRENTGROUP (), [Value] ) )
RETURN
MAXX ( Frequencies, [@Freq] )
假设[ID] = "899999999777"
。然后n = 12
和Digits
是通过创建一个列表 from 1
to12
并添加与每个位置对应的数字列而生成的表。
Digits =
价值 | @D |
---|---|
1 | 8 |
2 | 9 |
3 | 9 |
4 | 9 |
5 | 9 |
6 | 9 |
7 | 9 |
8 | 9 |
9 | 9 |
10 | 7 |
11 | 7 |
12 | 7 |
然后通过对每个不同数字的出现次数进行Frequencies
分组和计数来总结此表。@D
Frequencies =
@D | @频率 |
---|---|
8 | 1 |
9 | 8 |
7 | 3 |
最后,返回列中的最大值@Freq
。
使用它,很容易检查该值是否大于 7。您可以将最后一行修改为
IF ( MAXX ( Frequencies, [@Freq] ) > 7, ">7", "<=7" )
推荐阅读
- php - 如何访问 activeRecord 中模型的关系?
- android - 即使将值放入其中,内容值也被分配为 null
- css - 在 CSS Grid 中,为什么 1FR+9FR 在小屏幕尺寸中的行为与 10FR 不同?
- coq - 实数公理中的排除中间
- github-api - 如何启用 GitHub 预览功能,例如主题?
- javascript - 传单:使用 GeoJSON 掩码添加图像叠加层
- cakephp-3.0 - 如何在相关表中使用我的实体名称而不是 id
- javascript - String 和 Int 数组排序
- jquery - Json数据图表
- r - 使用R将加扰的中文字符串转换回正常