我想计算MS Access表中逗号分隔字段中值的出现次数。任何建议请:MS Access查询 - 计算逗号分隔列中值的数量
例如
表
ID |值
1 | 1,2,3
2 | 1,5,8,9,5
3 | 1,5,8,3
所需输出
ID |值#
1 | 3
2 | 5
3 | 4
我想计算MS Access表中逗号分隔字段中值的出现次数。任何建议请:MS Access查询 - 计算逗号分隔列中值的数量
例如
表
ID |值
1 | 1,2,3
2 | 1,5,8,9,5
3 | 1,5,8,3
所需输出
ID |值#
1 | 3
2 | 5
3 | 4
As @ June7正确地说,您需要一个可以在您的查询中调用的自定义函数。
将此放在一个标准模块:
Public Function CountValues(ByVal commaValues As Variant) As Long
If Not IsNull(commaValues) Then CountValues = UBound(Split(commaValues, ",")) + 1
End Function
现在,您可以把它在你的查询:
SELECT ID, CountValues(FieldName) AS [# of value]
FROM YourTableName;
输出:
ID | [值的数量]
1 | 3
2 | 5
3 | 4
4 | 0
NULL值默认为零。
非常感谢你:) – Jerry
你也可以与内置的功能做到这一点,而不调用自定义函数的开销:
select value, Len([value])-Len(Replace([value],",","")) as [# of value]
@Gungor,感谢您的回答,但是当我在查询中使用Replace时,出现错误Error:Undefined function'Replace'in expression。 – Jerry
这很奇怪。它可能与你的设置有关,与运行“不安全表达式”有关。你的环境是什么? windows/office版本 –
需要一个自定义的VBA功能,可以在查询或文本框被调用。开发代码并在遇到特定问题时将其发布用于分析。 – June7