我正在使用 Excel 2013。在 B 列中,我(从 B1:B229)有不同的订单号。当我在 Excel 工作表上复制另一份报告时,我想查看是否存在所有订单号。有没有办法创建一个公式(可能countif
,但我没有弄清楚),如果数字仅出现在 B 列中,则返回 1,否则返回 2(2 应该是最大值,这意味着它被正确复制)。复制的报告有点混乱,因此该报告的订单号未在同一列中对齐(可以在 L、M、N 直到 Q 列中预设)。这就是我不能使用的原因Vlookup
。
有没有建议使用公式来计算特定数字在整个工作表中出现的次数?然后将该公式向下拖到 B 列中其余数字?
这张图片显示了我的表格中的 1 行。您看到的第一列是 B。我想知道该数字是否在表格中的其他地方(它应该在有发票号的其他列中:)
答案1
首先,我看你是新手,你还没有接受任何 Stack Exchange 网站上的答案,尽管你有几个问题被问到。部分原因是你的问题格式很差,以至于人们无法快速理解你的问题是什么。部分原因是你没有读过游览页面在任何站点上。
阅读全文游览页面。这样你就能以更好的方式提问,我们也会更愿意回答。你想要这个,对吧?
我尝试了几个选项COUNTIF
,但我不喜欢它,因为当标准是数字格式时,我无法获得部分匹配的可靠结果。所以我使用 VBA 创建了一个 UDF(用户定义函数)。
公共函数 CountInRange(rWhere 作为范围,rCriterion 作为范围) 只要 Dim c 作为范围,sCrit 作为字符串 如果 rCriterion.Count 1 则 错误提升 (13) 退出函数 万一 sCrit = rCriterion.值 对于 r 中的每个 c 如果 Len(c.Value) Len(Replace(c.Value, sCrit, vbNullString)) 那么 范围内计数 = 范围内计数 + 1 万一 下一个 结束函数
- 尝试在 Excel 工作表中使用该函数,照常输入,例如:
=CountInRange($I$1:$R$2355,B1)
注意:现在您将无法使用 .xlsx 扩展名存储文件。您可以使用例如.xlsm,以便文件存储 UDF。