计算不同单元格中的标签并对它们进行求和

所以我在Excel电子表格中有很多行,其中包括不同的东西。 基本上看起来像这样:

Element 1 | Element 2 | Tags ------------------------------------------------ Example 1.1 | Example 1.2 | tag1,tag2,tag5 Example 2.1 | Example 2.2 | tag2,tag4,tag6 Example 3.1 | Example 3.2 | tag1,tag3,tag6 Example 4.1 | Example 4.2 | tag1,tag3,tag5 Example 5.1 | Example 5.2 | tag1,tag4,tag5 

所以只要忽略前两栏中的内容,对于我所要求的,这并不重要。 然而,最后一列(标签),我想要的是计数所有的行/单元格与标签,然后就总结起来,所以我得到(在这种情况下)如下:

 tag1: 4 tag5: 3 tag2: 2 tag3: 2 tag4: 2 tag6: 2 

所以原则上只要找出所有单元格中每个标签有多less个,然后总结出每个标签的数量。 这可以在Excel中完成吗?

提前致谢

我会使用一个数组公式来做到这一点:

 =SUM(IF(ISNUMBER(SEARCH("tag1", C:C)),1,0)) 

input公式后,您需要按Ctrl + Shift + Enter使公式成为一个数组公式。 Excel将自动添加大括号“{…}”来表示它和数组公式。

这假定你的标签是在c列中,你可以引用一个单元格作为“tag1”,例如

 =SUM(IF(ISNUMBER(SEARCH(A10, C:C)),1,0)) 

哪里有你的标签值

为了得到一个标签列表,下面的VBA应该做的(这循环通过一个选定的范围,并将结果写入一个工作表称为标签,您可能需要创build此工作表):

 Sub GetTags() Dim dict As Scripting.Dictionary Set dict = New Scripting.Dictionary ' Dim cellTags() As String Dim tag As Variant Dim cell As Range Dim selectedRange As Range Set selectedRange = Application.Selection For Each cell In selectedRange.Cells cellTags = Split(cell.Value, ",") For Each tag In cellTags If Not dict.Exists(Trim(tag)) Then dict.Add Trim(tag), Trim(tag) End If Next tag Next cell Dim StartRow, i As Long StartRow = 1 For i = 0 To (dict.Count - 1) ActiveWorkbook.Sheets("Tags").Range("A" & i + StartRow).Value = dict.Items(i) Next End Sub 

您可以使用COUNTIF():

 =COUNTIF(C:C,"*" & "tag1" & "*")