Question to say "I can!"

excel 去掉重復數據的方法

2013-12-19

假設原始數據在A列的A2:A10

B2數組公式:
?=INDEX(A:A,MIN(IF(COUNTIF(B$1:B1,A$2:A$10),4^8,ROW($2:$10))))&""

注意是數組公式, 輸入方法為: 先在B2輸入一個=號, 再粘貼=號后面的部分, 然后同時按
Ctrl+Shift+回車鍵 (俗稱: "三鍵" , 結束)
下拉

注: 原始數據至少從第二行開始, 這是前提條件

公式雖然簡單, 但解釋起來卻不容易,就從里向外說吧:

?COUNTIF(B$1:B1,A$2:A$10)
這個函數是依次判斷A2,A3,…,A10在B列(公式所在單元格上方區域)出現的數次, 如果返回值為0, 說明沒在B列沒出現過, 相當于FLASE, 否則為TRUE(出現過)

?IF(COUNTIF(B$1:B1,A$2:A$10),4^8,ROW($2:$10))
IF語句判斷如果COUNTIF()返回值不為0, 即當前公式所在單元格在A列已經出現過, 則返回值為4^8(即65536, 相當于一個極大的數或不可能有數據的單元格), 否則, 返回在A列沒出現過的數據的行號, 這個行號由ROW($2:$10)生成的數組決定

?MIN(IF(COUNTIF(B$1:B1,A$2:A$10),4^8,ROW($2:$10)))
MIN這個函數負責將此公式單元格上方沒有在A列出現過的, 而且又是IF得到的行號的最小的序數提供給INDEX, 這也是INDEX函數第二個參數的最后一個環節.

?&""
這個段代碼可有可無, 目的的在INDEX()返回為0的時候, 將其轉換為空值, 也就是不顯示零值.

這樣說有點抽象, 如果公式的哪段不明白, 可以在公式欄用鼠標涂黑, 然后按F9觀察這段公式的計算結果, 慢慢想通了, 一點一點地, 整個公式也就明白了.

作者:admin | Categories:設計問題 | Tags:

發表評論

電子郵件地址不會被公開。 必填項已用*標注

*

澳洲f1赛车b盘开奖套路 体育彩票金7乐开奖号 福彩3d预测 北京pk拾选号技巧 中原风釆22选5走势图 怎么看真钱100 河南中原22选5开奖结果 股票代码查询一览表股票行情中国所有股票代码 广东36选7好彩3奖金 上证50权重股排名 白小姐一肖精选中特网 宁夏体彩11选五 辽宁11走势图基本走势 永之胜配资 黑龙江快乐十分开奖号 怎么看股票k线图 吉林快三时时彩玩法