数据在A列和B列
在C1输入公式
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$2000&"",$A$1:$A$2000&"",0)=ROW($A$1:$A$2000),ROW($A$1:$A$2000),4^8),ROW(A1)))
数组公式,按CTRL+SHIFT+回车三键确定输入,鼠标移到单元格右下角,当出现一个黑色小十字时,同时按住鼠标左键往下拖动
然后在D1输入公式
=INDEX($B:$B,SMALL(IF($A$1:$A$2000=$C1,ROW($A$1:$A$2000),4^8),COLUMN(A1)))
数组公式,按CTRL+SHIFT+回车三键确定输入,鼠标移到单元格右下角,当出现一个黑色小十字时,同时按住鼠标左键往右拖动,再往下拖动
就会得出你想要的效果
我只把范围做到2000行,你可以根据自己数据改一下范围
不过这些数组公式很考验机能的,几千行数据,够呛,如果你的机子配置不高,会很卡的,楼主自己保重
用EXCEL自带的宏编制一个小程序,很简单的。