如何将EXcel中同一列单元格内内容相同的项目在另一列单独显示出来?

如图所示,将B列中姓名相同的如张三、显示在D列,并在E列显示出张三出来的次数,在线等高手解答!

这个问题的难点是取不重复值的公式,计数直接用COUNTIF函数就可以了。

D2输入数组公式,取不重复值:

=OFFSET(B$1,MATCH(,COUNTIF(D$1:D1,B$2:B$12),),)&""

如下图

E2输入一般公式

=IF(D2="","",COUNTIF(B:B,D2))

选定D2:E2,公式下拉复制就可以了,结果如下图

知识扩展:

1、数组公式,是标识为数组计算的公式,输入方法是:

在输入公式时,按Ctrl+Shift+Enter组合键确认输入,Excel将自动在公式外面嵌套一对大括号,如D2公式,输入后,在编辑栏可以看到公式变成

{=OFFSET(B$1,MATCH(,COUNTIF(D$1:D1,B$2:B$12),),)&""}

2、OFFSET语法
OFFSET(reference, rows, cols, [height], [width])
OFFSET 函数语法具有下列参数:
Reference  必需。作为偏移量参照系的引用区域。Reference 必须为对单元格或相连单元格区域的引用;否则,OFFSET 返回错误值 #VALUE!。
Rows  必需。相对于偏移量参照系的左上角单元格,上(下)偏移的行数。如果使用 5 作为参数 Rows,则说明目标引用区域的左上角单元格比 reference 低 5 行。行数可为正数(代表在起始引用的下方)或负数(代表在起始引用的上方)。
Cols  必需。相对于偏移量参照系的左上角单元格,左(右)偏移的列数。如果使用 5 作为参数 Cols,则说明目标引用区域的左上角的单元格比 reference 靠右 5 列。列数可为正数(代表在起始引用的右边)或负数(代表在起始引用的左边)。
Height  可选。高度,即所要返回的引用区域的行数。Height 必须为正数。
Width  可选。宽度,即所要返回的引用区域的列数。Width 必须为正数。

本例中省略Height和Width,表示返回Reference相同大小的区域。

3、MATCH函数语法:
MATCH(lookup_value, lookup_array, [match_type])
MATCH 函数语法具有下列参数 :

lookup_value  必需。需要在 lookup_array 中查找的值。例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。
lookup_value 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。

lookup_array  必需。要搜索的单元格区域。
match_type  可选。数字 -1、0 或 1。match_type 参数指定 Excel 如何在 lookup_array 中查找 lookup_value 的值。此参数的默认值为 1。

本示例中,match_type ä¸º0,表示为精确查找。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-10
D1输入=INDEX(B:B,SMALL(IF(MATCH(B$1:B$11,B$1:B$11,)=ROW($1:$11),ROW($1:$11),4^8),ROW(A1)))&""按CTRL+shift+回车,再向下填充公式。E2输入=COUNTIF(B:B,D2)向下填充。
第2个回答  推荐于2017-12-16
D2公式:
=INDEX(B:B,MIN(IF(COUNTIF(D$1:D1,B$2:B$11),4^8,ROW($2:$11))))&""
数组公式,按CTRL+SHIFT+回车键结束公式,下拉。
E2公式:
=COUNTIF(B:B,D2)
下拉追问

可否解释一下这个公式的意思?本人菜鸟一个,另外CTRL+SHIFT+回车键起到什么作用

追答

IF(COUNTIF(D$1:D1,B$2:B$11),4^8,ROW($2:$11))
如果D列当前行以上的单元格中包含有B2:B11中的数据,就返回4^8,否则返回对应的行号。
MIN(IF(COUNTIF(D$1:D1,B$2:B$11),4^8,ROW($2:$11)))
取得前一步中所有行号中的最小值。
INDEX(B:B,MIN(IF(COUNTIF(D$1:D1,B$2:B$11),4^8,ROW($2:$11))))
得到最小行号对应的B列中的值。
提示:编辑栏中选黑公式中的某一部分按F9键可显示该步执行情况,可以帮助检查错误和对公式的理解。

本回答被提问者采纳
第3个回答  2013-09-10
=COUNTIF(B:B,B2,1,0)
相似回答