请教一个Excel公式

在B列中,有一列数据,我想把B列中完全相同的单元格的内容,返回从C1开始往下显示出来. 请问这个函数怎么写?

=IF(AND(COUNTIF(B3:B$12,B2)>0,COUNTIF(C$1:C1,B2)=0),B2,"")

然后选中C2下拉填充公式,即可。

注意1:B列的第一个数据,不能从B1开始,至少要空开一行,因为公式需要引用上方的相邻单元格,如果数据从B1开始的话,那么会导致第一条公式无法引用上方相邻的单元格了。

注意2:公式中的绝对引用符号$,千万不要加错了位置哦,要严格按照我的例子中的位置去加$符号。

================================

VBA方法:

1、点击开发工具。

2、点击打开VB编辑器。

3、在画蓝色方框的区域内点右键---插入模块。

4、点击模块。

5、在右侧输入或粘贴代码。

6、点击画圆圈的按钮执行代码命令。

为方便复制,粘贴出代码如下:

Sub tiqu()

Dim irow1 As Long, irow2 As Long, rng As Range

irow1 = Range("B" & Rows.Count).End(3).Row

For Each rng In Range("B1:B" & irow1)

If WorksheetFunction.CountIf(Range("B1:B" & irow1), rng) > 1 Then

irow2 = Range("C" & Rows.Count).End(3).Row

If WorksheetFunction.CountIf(Range("C1:C" & irow2), rng) = 0 Then

If Range("C1") = "" Then irow2 = 0

Range("C" & irow2 + 1) = rng

End If

End If

Next

End Sub

追问

谢谢老师,可是我这空一行不太方便,有没有别的办法?

追答

那得用VBA代码了。

追问

可以,就用代码吧,辛苦您拉!

追答

答案已更新。

追问

非常感谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-03
请举例,上图,写结果。追问

这只是举例,实际中是还有中文,总之是统计完全相同的

追答

    公式为:

    =INDEX(A:A,SMALL(IF((MATCH(A$1:A$11,A$1:A$11,)=ROW($1:$11))*(COUNTIF(A$1:A$11,A$1:A$11)>1),ROW($1:$11),4^8),ROW(A1)))&""

    数组公式,按ctrl+shift+enter产生花括号。

    如图所示:

    注:公式中的行数必须和实际数据行数相同。

相似回答