Excel–确定一列数据中非数字结果的频率

我一直在看这个问题的答案,需要更多的细节。

https://stackoverflow.com/questions/5972947/frequency-of-strings-in-an-excel-column-pretty-sure-this-requires-vbscript/6482519#6482519

我看到Chris Neilsen的答案2,使用数据透视表来确定名称列中每个结果的计数。 有两个问题,数据透视表中产生的“名称数量”列是如何产生的? 其次,如果在数据透视表创build之后添加了另一个名字(即将Sarah添加到单元格A9),表格会自动更新吗?

我有一列非数字数据,将定期更新。 我很难创build显示每个结果频率的数据摘要,并规定当项目添加到列表中时摘要也将更新。 看起来枢轴表是最好的解决scheme,但我愿意接受其他build议。

1.了解数据透视表

以下是一些链接,可帮助您更好地理解透视表以及如何使用它们:

  • 在Excel 2003中: http : //www.ozgrid.com/Excel/excel-pivot-tables.htm
  • Excel 2007:请点击此处

你会在那里find如何创build“计数名称”列。 如果没有,请询​​问更多信息。

2.更新数据透视表

顺便说一下,您可以通过右键单击数据透视表来更新数据透视表数据,然后select“更新”(您也可以使用感叹号作为button)。 更多的信息可以在这里find: http : //ulearnoffice.com/excel/pivot.htm (更新数据章节)。

3.回答你的问题

数据透视表似乎是一个很好的解决scheme。 你应该尝试,如果它不工作,请让我们知道,也许我们将能够帮助你。

  1. 通过将“名称”字段checkbox拖到“数据透视表字段”窗口的“值”窗口中,可以创build“名称计数”列。 当我在我的版本的Excel(2007)中执行此操作时,它默认为“计数名称”。 如果你的说的是其他的东西,左键单击值窗口中的字段,然后select“值字段设置”。 从那里您可以指定要显示Excel的名称的统计信息。

  2. 如果您添加数据,则可以通过更改数据源来手动更新数据透视表。 或者(更好的选项),您可以使用工作表更改触发事件来自动更新数据透视表。 这是一些VBA代码。

    Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim names As Range 'Change 1 to number of your data column (A=1, B=2, ...) If Target.Column = 1 Then 'Change "A1" to the first cell (header) of your column of data. Keep quotes. Set names = ActiveSheet.Range("A1", ActiveSheet.Range("A1").End(xlDown)) 'Change "PivotTable1" to name of your pivot table. Keep quotes. ActiveSheet.PivotTables("PivotTable1").ChangePivotCache _ ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _ SourceData:=names, Version:=xlPivotTableVersion12) End If End Sub 

通过在Excel中打开VBAinput此代码(按Alt + F11)。 在对象浏览器中,右键单击包含数据的工作表(在Microsoft Excel对象下列出)。 select“查看代码”。 粘贴在代码中,你应该设置。