• ベストアンサー

エクセルでの異なる列の数値検索及び結果の色付けについて

お世話になります。 エクセルにて例えば、以下のような場合に はどのようにすればよいのでしょうか?   A列 B列 1 800   2 500 3 300 4     800 5 200 6  0 7 100    8     300 9     500  このように左側にて出てきた数字が 右側にていつかは消える可能性が高いときに 左右で同値のものを色付けしたいのです。 さらに、毎月データを下に増やしていくので 色付けした部分は翌月の検索では引っかからない ようにしたいのです。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pc_knight
  • ベストアンサー率66% (52/78)
回答No.3

A列の各セルのデータを順次、B列の全セルのデータと総当りで照合し、両データが最初に一致した時、両セルに色塗りするような作業を自動化すれば実現できます。 (Step1) AltキーとF11キーを同時に押し挿入(I)標準モジュールを選択すると用意される「Module1」画面に末尾に記した「Sub syougou()」以降の行を貼り付けます。 (Step2) 照合・色塗りをさせたい時は、AltキーとF8キーを押しマクロ” syougou ”を選択、”実行”をクリックすれば照合・色塗りが自動的に行われ、終了すると”終了メッセージ”がでます。(1000件データの照合時間は大体1分弱で、照合時間は件数の二乗に比例) Sub syougou() Dim ra As Integer 'ra=A列セルの行No Dim rb As Integer 'ra=B列セルの行No For ra = 1 To Range("A65536").End(xlUp).Row If Cells(ra, 1) <> "" And Cells(ra, 1).Interior.ColorIndex = xlNone Then For rb = 1 To Range("B65536").End(xlUp).Row 'A列ra行データとB列rb行データの照合 If Cells(rb, 2) <> "" And Cells(rb, 2) = Cells(ra, 1) And Cells(rb, 2).Interior.ColorIndex = xlNone Then 'A列ra行データとB列rb行データが一致 Cells(ra, 1).Interior.ColorIndex = 35 'A列ra行セルに色塗り Cells(rb, 2).Interior.ColorIndex = 35 'B列rb行セルに色塗り Exit For End If Next rb End If Next ra MsgBox "照合終了" End Sub

keiri007
質問者

お礼

pc_knightさん、ご回答ありがとうございます。 マクロは初めてでしたが、コードを教えて頂き ましてありがとうございます。 実際にやってみましたが、すごい速さで照合 されました。 未収金の回収などなので一部回収などあると 完全照合にはなりませんが、そこは手動にて 消込したいと思います。 ご指導誠に感謝です。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

この問題はエクセルの条件付き書式(関数のようなものが使える)では難しいと思います。 VBAなら何とかできそうか? ーーー 総勘定元帳の未収金ことが根底にあるらしいが、未収金元帳は、未収先別(口座管理)ではないですか。 それと未収金の回収は複数回回収となる、一部金回数があって、金額的に未収金計上時金額と回収金額は一致(1対1)は少ないのではないですか。 小生は実際回収状況の帳簿で、未収金側に済み印を押すのに苦労した経験が多い。 それに未収先や摘要欄記入がなどあって、それを頼りに考えるのでは 無いですか。単純では無いように思いますが。 ーーー そういう実態のことは別として、エクセル上の入力数字のもう少し色々なケースを例示して、(A列B列ともに?)色をつける条件を 文章で説明してみてください。 ーー >翌月の検索では引っかからない 翌月の表は別シートになるのですか6ヶ月とかは下行に連ねていくのですか。前月分をチェック対処からはずすのは、月単位で未収金は消えることになっているのでしょうか。 ーー この照合は1行限りの金額が頼りですよね。 A列  B列 800 ・・ ・・ ・・・ 800    800 の場合はどうする(どちらに色をつける)のか? 判らないことが多い。 ーーー (結論的なもの) A列対B列について その行までの 年月+金額で同じものの出現回数が同じならその行を色づけする。 となるのかな。 ーーー 例データ A2:C12 2 800 2 300 2 200 2 200 2 800 3 400 3 200 3 300 3 3 400 3 500 C2:C12を範囲指定 書式ー条件付書式 数式が 数式に =AND(C2<>"",COUNTIF($B$2:B2,C2)>0) セルに色づけ(など)の色指定 OK これでC列800、200のセルに色づけ。しかし200は月が違うので不可なれど回避法(解決)は難しい???

keiri007
質問者

お礼

imogasiさん、ご回答いただきありがとうございます。 関数ではやはり困難なのですね。 全てをエクセルで自動で消しこむのは難しそうなので 一部自動化を目指します。 ご指導ありがとうございました。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

経理についてよく分らないのですが..(^_^;) 要は、 A列とB列で、同じ数値があったらそれぞれに色をつける で、良いでしょうか? その場合、A(又はB)列内で同じ数値が複数有ったりはしないのでしょうか? >翌月の検索では引っかからないように 日付が入ったセルが有るのでしょうか?

keiri007
質問者

補足

たびたびすみません。 >A列とB列で、同じ数値があったらそれぞれに色をつける >で、良いでしょうか? その通りです。 >その場合、A(又はB)列内で同じ数値が複数有ったりはしないので >しょうか? たまに発生いたします。 なので一度色付けしたセルは飛ばして考えられると いいのですが。 >日付が入ったセルが有るのでしょうか? あります。 宜しくおねがいいたします。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

>右側にていつかは消える可能性が高いときに この意味が解からないのですが

keiri007
質問者

補足

質問が不明瞭ですみません。 >右側にていつかは消える可能性が高いときに ここの部分に関してはあまり意味なく書いておりました。 経理で使う総勘定元帳のデータをイメージしており 未収金の元帳データをエクセルに落とすと質問に 記載したようなデータ配列になります。 未収金なのでA列を借方・B列を貸方とすると未回収 部分は残ってしまいます。 その意味で「いつかは消える可能性が高い」= 「回収されるまでは残っている」という意味合いです。 以上のような状況になっております。 宜しくお願いいたします。

関連するQ&A

  • エクセルで行から数値を検索し、検索した数値のある列

    エクセルで行から数値を検索し、検索した数値のある列から左側の全ての合計を求めたいです。   A B C D E F 1  3 4 8 9 11 22 ←数字は隙間なくあるが、値がバラバラ(ただし昇順) 2 3  2~6行には色々な数字がまばらにある 4 5 6 1行目から検索したい数→10(別のセルで数式結果として出た数) ズレてるかもしれませんが・・・ E1セルに書かれている「11」の数字より前のD列、 A~D列の2行目~6行目の合計を各行ごとに別々に出していきたいです、どうしたらいいでしょうか また、表は行も列もデータを追加していく予定です

  • エクセルの文字列検索でお知恵をお貸し下さい。

    エクセルのA1~A5セルに次のようなデータがあるとします。 1-01-0 1-01-1 2-01-11 10-111-0 100-1111-111 B1~B5セルに、これらのデータから以下のようなデータを検索・抽出する関数が分からずに困っています。 1-01 1-01 2-01 10-111 100-1111 つまり各セルの右側の"-"(ハイフン)より左にある、可変な全文字列をB列に抽出したいのです。 どうか宜しくお願いいたします。

  • エクセルのセルの色付け

    エクセルの作業が今まで通りにできず困っております。 作業はソートをして選択した行のB列に色付けをするという単純な作業です。 昨日までは、行を飛ばして選択しても色付けが可能だったのですが今日は色付けができません。 7000行のデータ作業なのでソートをかけずに作業するのはとても時間がかかり困っております。 どなたか知恵をお貸しください。よろしくお願い致します。

  • エクセルでA列の数だけB列の文字列を表示させたい

    添付画像の左側のデータがあります。 それを、画像右側のように、エクセルのA列の数値の分だけ、B列の文字列をC列以降にもコピーしたいのですが、やり方が分かるかた、いらっしゃいますでしょうか? どうぞよろしくお願いしますm_ _m

  • Excelで最大値の入っている数値の右側にある項目名を拾いたい。

    Excelで最大値の入っている数値の右側にある項目名を拾いたい。 下のようなデータがあります。(A列は年、Bは何かの生産量・・とします) 1 2000 7 2 2001 11 3 2002 14 4 2003 10 5 2004 9 6 2005 8 生産量(B列)の最大値を求めるのは=MAX(B1:B7)で"14"が得られると思いますが、求めているのは"14"の入っている年の"2002"という数字を隣のC1に入れたいと思います。 どのような関数が必要でしょうか?

  • 数値の自動コピーができるプログラムについて

    お世話になります。 画像のようにエクセルデータがあるのですが、画像左側の何も入力されていないシートの 先頭行について 例えばA1セルに1を入力すると画像右側の先頭行と同じ列の数字が列Aに自動的にコピーできるようなプログラムがあると助かります。(画像左側のシート11,12,13それぞれに適用できるとありがたいです) 最初はHLOOKUP関数で参照を試みたのですが、画像右側のデータで入力されていないものには0が返されてしまい、都合が悪い状態になってしまいます。 (右側のデータにないところには左側のデータにも関数を含めて入力されていないものを希望するためマクロ、VBAがいいのではないかと考えました) 詳しい方のアドバイスが頂けますと幸いです。よろしくお願いします。

  • エクセルで条件付き書式での複数データを色づけ抽出をしたいのですが、上手

    エクセルで条件付き書式での複数データを色づけ抽出をしたいのですが、上手くいきません。 社員の勤続年数を纏めた表があり、そのリストの数値化した勤続年数の中から「0.5」「1.5」「2.5」「3.5」~「10.5」の数字を色づけ抽出したいのです。(有給計算に使用) 色づけは、文字でも網掛けでも構いません。 A列に氏名、B列に数値化した勤続数が入っているような形です。 *数値は関数で入ってます。 宜しくお願いします。

  • excelで文字列を検索する関数を教えてください。

    いつもお世話になります。 エクセルの関数で、シートAのセルA1に入っている文字列をシートBのC列から探し出し、同じ文字列があればTrueをなければFalseを返す関数を教えてください。 わからないながらも色々調べてみたのですが、検索にはVLOOKUPがよく使われているようですが、シートBのC列は、データの並べ替えができないので、VLOOKUPは、使えないのです。 よろしくお願いします。

  • エクセルでダブっている文字列を見つける

    いつもお世話になっています。 早速ですが、エクセルでaというファイルとbというファイル2つのデータがありその中にはそれぞれ13字の文字列(数字)が100以上あるのですが、ダブっているものを見つけるにはどうすれば簡単にできるでしょうか? よろしくお願いします

  • エクセルでワイルドカード検索がしたい

    こんにちは、いつもお世話になっています(*- -)(* _ _) 早速ですが・・・ エクセルにて A列に1~4桁の約1万件の数字が入っています。 その中から、特定のデータを抽出したいのですが方法がわかりません(T-T) 例えば ●「?14」で検索した場合 「514」「614」「914」などが抽出される ●「??14」で検索した場合 「6514」「1814」「2914」など・・・ ●「1???」で検索した場合 「1659」「1111」「1968」など・・・ その他、「?5」や「6??8」「57?1」など、 いろいろな数字のある一部分をワイルドカードにして検索したいのですが、どういう方法があるでしょうか?? オートフィルタを試したのですが、オプションの設定の仕方がよくないのかうまく抽出されません。 ちなみに    A 1 数字一覧 2 8 3 12 4 126 5 526・・・以下続く という感じになっています。B~F列までは別のデータが入っています。 こんな質問の仕方で上手く伝わるかわかりませんが、よろしくお願いいたしますm(__)m

専門家に質問してみよう