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

如图所示,将B列中姓名相同的如张三、显示在D列,并在E列显示出张三出来的次数,在线等高手解答!... 如图所示,将B列中姓名相同的如张三、显示在D列,并在E列显示出张三出来的次数,在线等高手解答! 展开
 我来答
gvntw
推荐于2016-05-21 · 知道合伙人软件行家
gvntw
知道合伙人软件行家
采纳数:709 获赞数:4873
微软最有价值专家(Most Valuable Professionals) 合著书籍7部:《Excel应用大全》等。

向TA提问 私信TA
展开全部

这个问题的难点是取不重复值的公式,计数直接用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,表示为精确查找。

liuyinde
2013-09-10 · TA获得超过6979个赞
知道大有可为答主
回答量:8941
采纳率:45%
帮助的人:1944万
展开全部
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)向下填充。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
了尘和尚
推荐于2017-12-16 · 幻人心识本来无,罪福皆空无所住。
了尘和尚
采纳数:4256 获赞数:20074

向TA提问 私信TA
展开全部
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键可显示该步执行情况,可以帮助检查错误和对公式的理解。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笨笨飞
2013-09-10
知道答主
回答量:2
采纳率:0%
帮助的人:2861
展开全部
=COUNTIF(B:B,B2,1,0)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式