[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.