[[20060524130237]] 『A列の数字とB列の数字で差分をC列に表示できるよax(ちょこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『A列の数字とB列の数字で差分をC列に表示できるようにしたい』(ちょこ)

 教えてください。
 A列に数字が2500件書いてあります。
 B列にも同様な数字が2000件

 C列にA列からB列にない数字を結果としたかたちで表示できるようにするには
 どうすれば良いでしょうか?
 是非教えてください。
 よろしくお願い致します。


 作業列を使う方法でも良いでしょうか。

 (川野鮎太郎)

はい。よろしくお願い致します。(ちょこ


 (1)作業列を使った方法
 D1セルに =IF(COUNTIF($B$1:$B$2000,A1),"",A1) を入れて、D2500までコピー
 D1を選択し、データ>フィルタ>オートフィルタとして、空白以外でフィルタする。
 出てきた重複の無いデータをコピー、オートフィルタを全てで全部表示させ、
 C1セルに値のコピー

 (2)数式のみで抽出する方法
 C1セルに以下の式を入力し、Shift+Ctrlキー押しながらEnterキーで確定させて配列数式にする。
 =IF(SUM(N(COUNTIF($B$1:$B$2000,$A$1:$A$2500)=0))<ROW(A1),"",INDEX($A$1:$A$2500,SMALL(IF(COUNTIF($B$1:$B$2000,$A$1:$A$2500)=0,ROW($A$1:$A$2500),""),ROW(A1))))

 ただし、2500件もデータがあると重たい処理になります。

 (川野鮎太郎)

 ぼちぼち解禁になるシーズンでんなぁ。(笑
 重いのがイヤっちゅうならマクロでやっつける方法もあります。
 Alt+F11→挿入→標準モジュールで純白の画面を表示
 下のコードをコピペしてC1当たりに差分と書き込みそのセルをアクティブにして
 Alt+F8で差分を実行
        (弥太郎)
 '------------------------
 Sub 差分()
    Dim Non_data(), tbl_1
    Dim tbl As Range
    Dim i As Long, n As Long

    If ActiveCell <> "差分" Then Exit Sub
        tbl_1 = Cells(1, 1).Resize(Cells(Rows.Count, 1).End(xlUp).Row).Value
        Set tbl = Cells(1, 2).Resize(Cells(Rows.Count, 2).End(xlUp).Row)

        For i = 1 To UBound(tbl_1, 1)
            If WorksheetFunction.CountIf(tbl, tbl_1(i, 1)) = 0 Then
                ReDim Preserve Non_data(n)
                Non_data(n) = tbl_1(i, 1)
                n = n + 1
            End If
        Next i
   ActiveCell.Offset(1).Resize(UBound(Non_data) + 1) = Application.Transpose(Non_data)

 End Sub


ありがとうございました。挑戦してみます!!(ちょこ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.