quqingyuan 发表于 2007-7-3 10:14

新手求助:如何统计EXCEL中文本个数

新手求助:如何统计EXCEL中文本个数

例如:

上海梅花针织有限公司
上海强和化工厂



上海申康电池制造有限公司



上海申康电池制造有限公司



上海强和化工厂
上海强和化工厂

上面有6条记录,其中有很多空格,但是我要统计单位得个数,也就是说我要得结果是3
怎么弄啊?*.*lll

汗。。。我弄不来

谢谢各位高手,帮帮忙

maopi 发表于 2007-7-3 10:41

Maybe sort by that column (hopefully, then entries with the same company name will be right next to each other), then count.

luansheng 发表于 2007-7-3 17:32

你可以这样做:
先排序,然后用高级筛选命令如图

luansheng 发表于 2007-7-3 17:58

如果统计个数,很多的话,可以用count函数

shiyg2001 发表于 2007-7-3 19:27

我也是菜鸟,方法供你参考:
1、如果你的数据较少,先排序,直接数一数就行了;
2、如果数据多,还是要先排序,然后用“宏”来完成。

宏可以这样编写:
Sub Macro1()
'
' Macro1 Macro
' 宏由 Shiyg2001 录制,时间: 2007-7-3
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'重要!!重要!!请先备份你的数据,再进行以下操作!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'
'操作步骤:
'1、你的数据先排序,将空行排到excel表的末尾,excel会将相同数据排在一起
'2、从“工具”菜单--“宏”--“录制新宏”--“编辑宏”,copy以下内容。
'
Const k = 69                              'excel表中要统计的记录,比如从A1~A69,你要根据你情况修改此值
Dim content(k), counts(k)                   '定义两个数组,分别存放公司名称和出现次数,一一对应
i = 1: j = 1: m = 1
Do While i <= k
    n = 1
    For j = i + 1 To k + 1
      If (Cells(j, 1) = Cells(i, 1)) Then '读入并比较两临近单元格值,若相等,计数器+1
            n = n + 1
      Else                              '若不等,则将值分别存放在两个数组中,并跳出循环
            m = m + 1
            content(m) = Cells(i, 1)
            counts(m) = n
            GoTo s1
      End If
      
    Next j
s1:
    i = j                                 '此时交换数值,VBA怎么不支持swap i, j ?
Loop
'
Cells(k + 2, 1) = "统计结果:"
For l = 1 To m                              '输出结果
    Cells(k + l + 2, 1) = content(l)
    Cells(k + l + 2, 2) = counts(l)
Next
      
'
End Sub

以上代码我试过,结果正确。

shiyg2001 发表于 2007-7-3 19:33

就是这样啦!

冰蓝 发表于 2007-7-3 22:07

先使用Trim函数去掉多余的空格,然后使用数据透视表,数据项选计数值就OK了。不需要编程序的。

冰蓝 发表于 2007-7-3 22:17

我现在在OSX下面,简单做了一下,Windows下面Excel差不多的。
第一步:使用Trim函数去掉两边多余的空格,注意看第二列的函数。

冰蓝 发表于 2007-7-3 22:18

第二步,选择“数据”下面的“数据透视表”

冰蓝 发表于 2007-7-3 22:26



按“下一步”

选择数据区域,点下一步:



点窗口中的那个“布局”按钮:



把右边的“去掉空格”先拉到行那里,再拉到“数据项”那里,应该自动为计数值的,如果不是,改成计数:



会有一个新表出来,而且可以跟着你原始表的变化自动更新(数据区域要选择对),呵呵,希望对你有帮助。



Windows版本的Excel2003应该操作一样,函数一样,中文我可能翻译的不太准,反正对照看啦:)

冰蓝 发表于 2007-7-3 22:30

原帖由 shiyg2001 于 2007-7-3 19:27 发表 http://www.ibmnb.com/images/common/back.gif
我也是菜鸟,方法供你参考:
1、如果你的数据较少,先排序,直接数一数就行了;
2、如果数据多,还是要先排序,然后用“宏”来完成。

宏可以这样编写:
Sub Macro1()
'
' Macro1 Macro
' 宏由 Shiyg20 ...

呵呵,要先加个去空格的过程。

获得行的count,呵呵。

lael 发表于 2007-7-3 23:19

晕,多简单的问题,楼上大家搞这复杂干啥,给每个问题加一个数字表示列,比如都是1,然后拉数据透视表就行了

比如
X        Y
a        1
a        1
        1
        1
b        1
c        1
        1
c        1

得到的结果
计数项:X       
X        汇总
a        2
b        1
c        2
(空白)       
总计        5

你要的是不是X这列?

当然也可能我没理解明白你的意思

shiyg2001 发表于 2007-7-4 00:13

原帖由 冰蓝 于 2007-7-3 22:30 发表 http://www.ibmnb.com/images/common/back.gif


呵呵,要先加个去空格的过程。

获得行的count,呵呵。

是的,去掉空格很简单。trim(cells(i,1))或用公式trim(A1)。

呵呵,你的方法很好,用数据透视简单可行!平时,我用得少,基本习惯用VBA来解决问题。

shiyg2001 发表于 2007-7-4 00:14

学会了使用数据透视,感谢“冰蓝”!!!

sinfire 发表于 2007-7-4 08:01

右下角显示求和的地方点右键,选择计数即可。

xnyzlyc 发表于 2007-7-4 08:20

强贴,学习了,
坛子里高手很多啊:D

socomic 发表于 2007-7-4 08:29

看的我眼晕。。。

luansheng 发表于 2007-7-4 08:56

数据透视表是个不错的东西,不过一直没有机会用,有时间好好学习一下。
页: [1]
查看完整版本: 新手求助:如何统计EXCEL中文本个数