[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『相違部分検索』(相違文字)
下記のようにA〜K列まで使用のデーターがあります。(シート1) ┌─┬────┬────┬────┬────┬──── │ │ A │ B │ C │ D │ K │ ├─┼────┼────┼────┼────┼────┤ │1 │ 東京 │季節 │晴れ │ 1-1 │ 100 │ ├─┼────┼────┼────┼────┼────┤ │2 │ 上野 │季節 │曇り │ 2-2 │ │ ├─┼────┼────┼────┼────┼────┤ │3 │ 渋谷 │季節 │雨 │ 3-2 │ 100 │ ├─┼────┼────┼────┼────┼────┤ │4 │ 練馬 │季節 │晴れ │ 4-2 │ │ ├─┼────┼────┼────┼────┼────┤ │5 │ 新宿 │季節 │雨 │ 5-2 │ 100 │ ├─┼────┼────┼────┼────┼────┤
(シート2) ↓ ┌─┬────┬────┬────┬────┬──── │ │ A │ B │ C │ D │ K │ ├─┼────┼────┼────┼────┼────┤ │1 │ 東京 │季 │晴れ │ 1-1 │ 101 │←B1とK1が上記と相違 ├─┼────┼────┼────┼────┼────┤ │2 │ 上野 │季節 │曇り │ 2-2 │ │←すべて同じ ├─┼────┼────┼────┼────┼────┤ │3 │ 渋 │季節 │雨 │ 3-1 │ 100 │←A3とD3が上記と相違 ├─┼────┼────┼────┼────┼────┤ │4 │ 練馬 │季節 │晴れ │ 4-2 │ 11 │←K4が上記と相違 ├─┼────┼────┼────┼────┼────┤ │5 │ 新 │季 │雨 │ 5- │ 10 │←A5〜K5すべて相違 ├─┼────┼────┼────┼────┼────┤
上記のようにセルの相違文字があればシート1とシート2のM列に"○"を付ける ようにしたいのですが?? 出来れば”セルの色””文字の色”も同様に違えば"○"を・・・・ ○だけだと後で何処が違うのかを見るのが大変そうなのですが 何かよい方法があれば教えていただけないでしょうか。 データーは数万とあります。(泣)マクロが??? (相違文字)
この様な方法でどうでしょう。 ただし、Sheet1,Sheet2の同じ行、同じ列 (同じ場所に有るセル)の状態を比べる場合です。
>○だけだと後で何処が違うのかを見るのが大変そうなのですが は、確かにそう思いますので、Sheet3を作ります。 Sheet3のフォントは、「MSゴシック」等、等幅フォントを指定して下さい。
Sheet3のA1セルを選択した状態で メニュー・挿入(I)→名前(N)→定義(D)と進み
背景色1 =GET.CELL(63,Sheet1!A1)+NOW( )*0 背景色2 =GET.CELL(63,Sheet2!A1)+NOW( )*0 文字色1 =GET.CELL(24,Sheet1!A1)+NOW( )*0 文字色2 =GET.CELL(24,Sheet2!A1)+NOW( )*0
↑4つの名前を定義します。 ○○1 と ○○2の違いは、シート名のみです。
A1セルに ↓2行で一つの式です。 =IF(Sheet1!A1=Sheet2!A1," ","デ")&"-"&IF(文字色1=文字色2," ","文")&"-"& IF(背景色1=背景色2," ","背") を入力したら、このセルを必要箇所にコピーしてください。 M1セルに =5-COUNTIF(A1:K1," - - ") と、入れてこのセルを必要行コピーしてください。
Sheet2のM列には =IF(Sheet3!M1,"○","") を入力します。
以下、Sheet2とSheet3の結果図です。 Sheet2 [A] [B] [C] [D] ・・・・ [K] [L] [M] [1] 東京 季 晴れ 1-1 101 ○ [2] 上野 季節 曇り 2-2 [3] 渋 季節 雨 3-1 100 ○ [4] 練馬 季節 晴れ 4-2 11 ○ [5] 新 季 雨 5- 10 ○
Sheet3 [A] [B] [C] [D] ・・・・ [K] [L] [M] [1] - - デ- - -文- - - デ- - 3 [2] - - - - - - - - - - 0 [3] デ- - - - - - デ- - - - 2 [4] -文- - - - -背 - - デ-文- 3 [5] デ- -背 デ-文- - - デ- - デ- - 4
例えば、B1セルは データが違い、C1セルは 文字色が違います。 A5セルは、データと背景色が違います。
セルの色・文字の色等を変更して 確認する場合は [ F9 ]キーをおして、再計算を行ってください。 色を変更しただけでは、Sheet3の内容は変わりません。
(HANA)
ありがとうございます。 難しすぎて・・・・マクロなどでは出来ないのでしょうか??(相違文字)
どこが分かりませんか? 名前の定義の部分ですかね・・・?
もしも各表がA1セルから始まっていなくても 名前の定義をするときは、Sheet3のA1セルを選択した状態で 上記式にて設定して下さい。
あるいは、気になるようで有れば たとえばB5セルを選択して名前の定義を行うなら 各式の =GET.CELL(63,Sheet1!A1)+NOW( )*0>0 ~~この部分も、B5セルにして下さい。
他の所で躓いて居られるとは思えないので・・・。
(HANA)
(wisemac21)さん(HANA) さんありがとうございます。 何とかできたのですが、時間がかかり過ぎてしまいマクロを希望しました。 Sub Macro1() ActiveWindow.SmallScroll Down:=-12 Range("A:K,M:W").Select Range("M1").Activate Selection.ColumnDifferences(ActiveCell).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With Range("L9").Select ActiveWindow.SmallScroll Down:=-9 End Sub 記録で行いましたが駄目でした・・・・(泣)(相違文字)
結果は何処にどの様に出るのが良い事に成りましたか? 当初の様に >シート1とシート2のM列に"○"を付ける だけで良いでしょうか?
結果を見て・・・何をするのか私には分かりませんが・・・ 何かをなさるのでしょうから、どの様な結果が出れば その後の処理が簡単に出来るのかは、そちらで考えて 希望結果図を載せて下さい。
表形式は、エクセルから直接貼り付けると 簡単に記入出来ると思います。 (当初投稿なさったような線は入りませんけどね・・・。)
ただ、マクロにしても1セルずつ見ていくので 時間はかかると思いますよ。
(HANA)
そうですね。。当初に希望いたしましたM列に"○" で相違がある場合シート1シート2のN列〜X列を使用して一番最初の例だと N1に"B1と相違" O1に"K1と相違"などと何処が違うのかを表示できればと思います。 こんな感じをマクロに出来たらなんて・・・(相違文字)
>N列〜X列を使用 するならN1には、A1の結果が表示されるはず? ・・・あぁ、前詰めって事ですね。
あと 「何の相違か」って所までは表示されなくて良いのですね?
(HANA)
(wisemac21)さん 相違文字さんが記録した手順は、貴方のアドバイスに従った物ですから その部分を消されると、話がおかしくなりますよ?
と言う事で、戻しても宜しいですかね?
(HANA)
「何の相違か」まで表示されればありがたいです。 最初から自分でしたい事を提示すればと反省しています。(相違文字)
でしたら、どの様に表示されれば良いのですか?
ご自身が作ろうと思ったときに、 先に決めて於かなくてはいけない事でしょ? それは、先に決めて 意思表示をして於いて下さい。
最初に載せて頂いたデータで良いので、(色はそちらで適当に変更してもらって) そのデータを使ったらM列〜X列にはどの様に表示されるか サンプルを作って載せて下さい。
上でも書きましたが、言葉での説明だけではなく 【希望結果図を載せて下さい。】
そうして頂けると、先に何を決めておかなければならないか 分かると思います。
(HANA)
シート1 A B C D ・・ K ・・ M N O P Q X 1 東京 季節 晴れ 1-1 ・・ 100 ・・ ○ ○ ○ 2 上野 季節 曇り 2-2 ・・ ・・ 3 渋谷 季節 雨 3-2 ・・ 100 ・・ ○ ○ ○ 4 練馬 季節 晴れ 4-2 ・・ ・・ ○ ○ 5 新宿 季節 雨 5-2 ・・ 100 ・・ ○ ○ ○ ○ ○ ○ シート2 A B C D ・・ K ・・ M N O P Q Y 1 東京 季 晴れ 1-1 ・・ 101 ・・ ○ ○ ○ 2 上野 季節 曇り 2-2 ・・ ・・ 3 渋 季節 雨 3-1 ・・ 100 ・・ ○ ○ ○ 4 練馬 季節 晴れ 4-2 ・・ 11 ・・ ○ ○ 5 新 季 雨 5- ・・ 10 ・・ ○ ○ ○ ○ ○ ○
上記のようにしたいと思います。 M列は前回同様にシート1とシート2の行セルに相違があれば"○"を A B C D E F G H I J ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ N O P Q R S T U V W
N1には、A1の結果と言う具合で・・相違があれば"○"を・・・・ 後は文字の相違等は目で見て判断いたします。 おそらくそんなには無いと思うので・・・ 何度も申し訳ございません。。(相違文字)
Sub test() Dim x As Long With Sheets("sheet1").Range("a1").CurrentRegion.Resize(,10) x = .Rows.Count .Range("m1").Resize(.Rows.Count, 10).Formula = _ "=if(sheet1!a1<>sheet2!a1,sheet1!a1&""/""&sheet2!a1,""○"")" Sheets("sheet2").Range("m1").Resize(.Rows.Count, 10).Formula = _ "=if(sheet2!a1<>sheet1!a1,sheet2!a1&""/""&sheet2!a1,""○"")" End With End Sub とか? (seiya)
ありがとうございます。しかし試してみましたが全部○に なってしまいます。??。。(相違文字)
処理にかかる時間はどうですか? 問題ない早さですか?
(HANA)
全然、問題ございません。数秒です。(相違文字)
でも、セルには数式が入りますよね? これで問題無いのなら、最初に私が載せた方法でも 問題なさそうに思いますが、あちらでは時間がかかるのですか?
・・・・まぁ、文字色と背景色も見てるから重かったのかな・・・?
(HANA)
全部○ですか? なぜでしょう? 数式を一部変更しました。
Sub test() With Sheets("sheet1").Range("a1").CurrentRegion.Resize(,10) .Range("m1").Resize(.Rows.Count, 10).Formula = _ "=if(sheet1!a1<>sheet2!a1,sheet1!a1&""/""&sheet2!a1,""○"")" Sheets("sheet2").Range("m1").Resize(.Rows.Count, 10).Formula = _ "=if(sheet2!a1<>sheet1!a1,sheet2!a1&""/""&sheet1!a1,""○"")" End With End Sub (seiya)
seiyaさん 数式の事なら、最初ので合っていると思いますよ。 あ、勿論2回目のもです。
(HANA)
とりあえず、不要部分を削除しておきました。 (seiya)
やはり全部N〜○で・・何度もためしてみましたが・・(相違文字)
各セルに入った数式はどのようになっていますか? (seiya)
申し訳ございません。K列で試してました。 KはXに結果を追加できますでしょうか?(相違文字)
> 申し訳ございません。K列で試してました。 > KはXに結果を追加できますでしょうか? 意味がわかりません... (seiya)
説明不足で申し訳ございません。 しかしM列"○"ですがシート1シート2共に同じでも○が・・・表示されてしまいます? Sub test() With Sheets("sheet1").Range("a1").CurrentRegion.Resize(,11) .Range("m1").Resize(.Rows.Count, 11).Formula = _ "=if(sheet1!a1<>sheet2!a1,sheet1!a1&""/""&sheet2!a1,""○"")" Sheets("sheet2").Range("m1").Resize(.Rows.Count, 11).Formula = _ "=if(sheet2!a1<>sheet1!a1,sheet2!a1&""/""&sheet1!a1,""○"")" End With End Sub K列は10を11にしたら表示されました。(相違文字)
> しかしM列"○"ですがシート1シート2共に同じでも○が・・・表示されてしまいます? そのような仕様えはないのですか? 数式は Sheet1/sheet2が同じなら○、そうでなければ両方の値を表示 ということにしてありますが? (seiya)
名前の定義に関する式を少し変更しました。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.