我在MS Outlook中收到的电子邮件中列出了我从“收件人”字段中复制的所有电子邮件ID。这些值(电子邮件ID)由分号分隔。我已将这个大的电子邮件ID列表复制到Excel中。现在我想在此列表中找到电子邮件ID的数量;基本上通过计算半冒号的数量。
我能做到这一点的一种方法是编写C代码。即将大列表存储为字符串缓冲区,并将字符串比较为“;”在while(char == ';') loop
中。
但我想快点做。
有没有快速的方法可以找到它:
1。)正则表达式(我使用powergrep处理正则表达式)
2.。)在excel本身(任何excel宏/插件?)
3.)DOS脚本方法
4.。)还有其他任何快速的方法吗?
答案 0 :(得分:7)
我相信以下内容应该适用于Excel:
= Len(A1) - Len(Substitute(A1, ";", "")) + 1
/编辑:如果您已将电子邮件地址粘贴到多个单元格上,则可以使用以下函数对单元格进行计数:
= CountA(A1:BY1)
CountA
计算给定范围内的非空单元格。您可以通过在单元格中键入 =CountA(
,然后使用鼠标光标选择单元格区域来指定范围。
答案 1 :(得分:2)
如果计算分号的数量对你来说足够好,你可以使用这个解决方案在Perl中完成:Perl FAQ 4.24: How can I count the number of occurrences of a substring within a string
答案 2 :(得分:2)
$ echo "user@domain.tld;user@domain.tld;user@domain.tld" | sed -e 's/;/\n/g' | wc -l
3
如果你已经安装了Cygwin,它实际上是即时的。如果没有,cygwin值得安装恕我直言。它基本上提供了覆盖Windows系统的Linux bash提示。
顺便说一句,像这样的东西是我喜欢* nix而不是Windows的工作原因,因为bash脚本比批处理脚本强大得多,所以我不能生活在没有Cygwin的Windows机器上。
答案 3 :(得分:2)
的PowerShell:
> $a = 'blah;blah;blah'
> $a.Split(';').Count
3
答案 4 :(得分:2)
3)如果你既没有cygwin,也没有安装powershell,试试这个.cmd
@echo off
set /a i = 0
for %%i in (name1@mail.com;name2@mail.com;name3@mail.com) do set /a i = i + 1
@echo %i%
答案 5 :(得分:1)
如果您使用的是Excel,则可以使用此代码并公开它。
Public Function CountSubString(ByVal RHS As String, ByVal Delimiter As String) As Integer
Dim V As Variant
V = Split(RHS, Delimiter)
CountSubString = UBound(V) + 1
End Function
如果您有.NET,可以创建一个小命令行实用程序
Module CountSubString
Public Sub Main(ByVal Args() As String)
If Args.Length <> 2 Then
Console.WriteLine("wrong arguments passed->")
Else
Dim I As Integer = 0
Dim Items() = Split(Args(0), Args(1))
Console.WriteLine("There are " & CStr(UBound(Items) + 1) & "
End If
End Sub
End Module
答案 6 :(得分:1)
将列表加载到您最喜欢的(不是记事本!)编辑器中,替换;通过\ n,在状态栏中查看您有多少行,如果需要,删除最后一行。
答案 7 :(得分:1)
myString.ToCharArray()。Count(char =&gt; char =';')
答案 8 :(得分:1)
如果是awk,echo是可以使用的(和it is, even on windows):
echo "addr1;addr2;addr3...." | awk -F ";" "{print NF}"
答案 9 :(得分:0)
用while循环遍历它并计算';'可能会是最快,最可读的。
考虑Konrad的建议,它也将循环遍历字符串并检查每个字符并查看它是否是一个simicolon,然后修改字符串(可能是也可能不是可变的,我不知道使用excel),以及然后它计算它与原始字符串之间的长度。