国产一区二区欧美精品免费-欧美国产日韩在线视频-欧美亚洲国语精品一区二区-欧美激情五月综合啪啪-国产69精品麻豆久久久久-亚洲人成精品久久久久桥网站-欧美刺激肥熟在线视频-十七岁日本免费完整版BD-黑夜在线拖拽不卡第一页

`
閱: 3746 | 回: 0
發(fā)表于2015/10/25 14:23:30 樓主 
頭像 等級:初學者
積分:0
財富值:0.00
身份:普通用戶

 要將一個多行多列區(qū)域中不重復的數(shù)據(jù)提取到一列,即對于重復的數(shù)據(jù)只提取一次,最直接的做法是先將該區(qū)域的數(shù)據(jù)轉(zhuǎn)到一列中,再利用Excel2007/2010中的刪除重復項功能去掉重復值。另外,還可使用數(shù)據(jù)透視表、數(shù)組公式和VBA的方法來提取,本文以Excel 2010為例分別介紹如下, 
    假如數(shù)據(jù)在A1:C11區(qū)域,其中還包含一些空單元格,如圖所示。方法一:利用數(shù)據(jù)透視表
    利于數(shù)據(jù)透視表的多重合并計算功能,將上述數(shù)據(jù)區(qū)域作為數(shù)據(jù)透視表的多重合并計算數(shù)據(jù)區(qū)域,把“值”字段放到在數(shù)據(jù)透視表的行區(qū)域中,即可得到不重復值。步驟如下:
    1.在區(qū)域左側(cè)插入空白列。如果原數(shù)據(jù)區(qū)域不是從A列開始,則可跳過此步驟。在本例中,由于原數(shù)據(jù)區(qū)域包含工作表的第一列(A列),需先在該區(qū)域的左側(cè)插入一個空白列,作為數(shù)據(jù)透視表的行字段。

2.選擇數(shù)據(jù)區(qū)域中的某個單元格,按Alt+D,再按P鍵,打開“數(shù)據(jù)透視表和數(shù)據(jù)透視圖向?qū)А保x擇“多重合并計算數(shù)據(jù)區(qū)域”項,單擊“下一步”。3.再次單擊“下一步”,在彈出的對話框中選擇并添加數(shù)據(jù)區(qū)域。在選擇區(qū)域時注意要包含原數(shù)據(jù)區(qū)域的左側(cè)列及標題列。本例為包含上述空白列的A1:D11。單擊“下一步”,在彈出的對話框中選擇數(shù)據(jù)透視表存放的位置,單擊“完成”按鈕。本例將數(shù)據(jù)透視表放置在當前工作表F3單元格開始的區(qū)域中。
    4.在數(shù)據(jù)透視表的字段列表中取消選擇所有字段,然后再次勾選“值”字段,或?qū)ⅰ爸怠弊侄瓮先氲健靶小睒撕瀰^(qū)域中,即可在F列得到原區(qū)域中的不重復值。
方法二:使用數(shù)組公式
    假如數(shù)據(jù)在A1:C11區(qū)域,在E2單元格中輸入數(shù)組公式:
    =INDIRECT(TEXT(MIN(IF(($A$2:$C$11<>"")*(COUNTIF($E$1:E1,$A$2:$C$11)=0),ROW($2:$11)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""
    公式輸入完畢,按Ctrl+Shift+Enter結束。然后拖動填充柄向下填充公式,直到出現(xiàn)空白為止。
如果區(qū)域中的數(shù)據(jù)全部為數(shù)字和空單元格,還可用下面的數(shù)組公式:
    =LARGE(IF($A$2:$C$11="","",$A$2:$C$11),SUM(COUNTIF($A$2:$C$11,$E$1:E1))+1)
    方法三:使用VBA
    下面的VBA代碼利用Dictionary對象中的關鍵字具有唯一性的特點得到不重復值。使用方法是按Alt+F11打開VBA編輯器,在代碼窗口中粘貼下列代碼并運行,即可在F列可得到A2:C11區(qū)域中的不重復值。
Sub Uniquedata()
    Dim rCell As Range
    '創(chuàng)建Dictionary對象
    Set d = CreateObject("Scripting.Dictionary")
    '遍歷數(shù)據(jù)區(qū)域的單元格
    For Each rCell In Range("A2:C11")
        '判斷單元格是否為空
        If rCell <> "" Then
            '如果Dictionary對象中不包含指定的關鍵字就添加該關鍵字和條目
            If Not d.exists(rCell.Value) Then d.Add rCell.Value, rCell.Value
        End If
    Next
    '清除指定列內(nèi)容
    Range("F2:F" & Range("F2").End(xlDown).Row).ClearContents
    '將Dictionary對象中的條目寫入指定列
    Range("F2").Resize(d.Count) = WorksheetFunction.Transpose(d.Items)
End Sub

我的個性簽名

快速回復

目前不允許游客發(fā)表,請 登錄 注冊 后再發(fā)貼。