- 締切済み
エクセルの2つのシートを比較
エクセルで2つのシートのA列に値が入っています。 それぞれのA列を比較して同じ値であればシート1のB列をコピーしてシート2のB列に貼付。 ということはVBAで可能でしょうか? ※行番地はばらばらです。 ※A列の値がダブルことはありません。 例) シート1 シート2 A列 B列 A列 B列 111 あああ 111 222 いいい 333 333 ううう 555 444 えええ 444 555 おおお 666 結果 シート1 シート2 A列 B列 A列 B列 111 あああ 111 あああ 222 いいい 333 ううう 333 ううう 555 おおお 444 えええ 444 えええ 555 おおお 666 よろしくお願いします。
- errie217
- お礼率16% (1/6)
- オフィス系ソフト
- 回答数4
- ありがとう数1
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- hana-hana3
- ベストアンサー率31% (4940/15541)
>例でいうとシート1のB3をシート2のB2へペーストしたいのです。 その位置に値が入っているはずですが? 私の認識が違っているのでしょうか? Vlookupで参照した時と同じ結果になっているはずです。 #3の回答への補足の考え方(Forの2重ループ)でも構いませんが、実行時間の無駄です。 これを実行している間に、#3さん回答の作業が終わっているはずですよ。
- mu2011
- ベストアンサー率38% (1910/4994)
この要件なら関数で充足すると思いますし、メンテナンスが容易です。 sheet2のA列に検索値が設定済みならば、B2に=IF($A2<>"",VLOOKUP($A2,Sheet1!A:B,2,FALSE),"")を設定して、 B2のフィルハンドル(セル枠右下の■)をダブルクリックで如何でしょうか。
- hana-hana3
- ベストアンサー率31% (4940/15541)
こんな感じでしょうか? Sub sample() Dim C As Range Dim TmpW As Variant Set TmpW = Sheets("Sheet1").Range("A1:B65536") On Error GoTo exits For Each C In Sheets("Sheet2").Range("A:A") C.Offset(, 1) = Application.WorksheetFunction.VLookup(C.Value, TmpW, 2, False) Next exits: End Sub
補足
すいません。説明不足だったようで... ペーストする行ですが、A列の同じ内容のところ 例でいうとシート1のB3をシート2のB2へペーストしたいのです。 ややこしくてすいません。可能でしょうか??
- hana-hana3
- ベストアンサー率31% (4940/15541)
>※A列の値がダブルことはありません。 VBAよりも VLOOKUP関数で組んだ方が簡単ですけど。
補足
ご回答ありがとうございます。 上記例くらいならいいのですが、データ量がすごく多く、比較するシートも随時更新となるので… VBAで組めたらと悩んでいます。
関連するQ&A
- Excel VBAでの値の比較
お世話になります。 Excel VBAでの値の比較方法についてご教授頂きたく存じます。 下記のような値がセルに入っていると仮定しまして、 セルA1とセルG1を比較する セルA2とセルG2を比較する セルB1とセルH1を比較する セルB2とセルH2を比較する 値が違う場合のみ、A列、又は、B列のセルの色を変更したいのですが・・・。 下記例の場合であれば、B1とA2がセルの色が変われば良いです。 A列 B列 G列 H列 1行 1 1 1 2 2行 2 2 3 2 VBAで実現したいと思います。 何卒、宜しくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- エクセル関数(シートの比較)を教えて下さい
A列にある部品の型番が入っており、同じ行のB列以降に詳細内容が入っています。 B列以降の数は型番によってバラバラです。 Sheet1,2で同じ型番同士で比較し、B列以降の詳細内容が異なるものを Sheet3に書き出したいのです。 たとえば、 Sheet1の内容が、 A列 B列 C列 D列 E列 5001 A1 B5 F3 Z4 5002 E6 C2 A7 5003 B9 M8 Sheet2の内容が、 5001 A1 B5 5002 E6 C1 A6 5004 B9 M8 結果として、 5001 F3 Z4 5002 C1 A6 5003 B9 M8 5004 B9 M8 このような場合、どうすればいいのでしょうか。 なるべくなら関数がいいのですが、無理ならばVBAでもかまいません。 Excel2000です。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルで別シートの値を取得したいです。
エクセルで質問があります。 別シートからセル値を取得したいです。 ただ、セル番地は行番号、列番号で指定し、 行、列番号はセルに入力してある値を使いたいです。 例 Aシート(値格納シート) B1セル値=1000 -------------- Bシート(値取得シート) A列=行番号入力 B列=列番号入力 C列=Aシートの取得関数 A2セル値=1 B2セル値=2 C2セル=1000(取得値) C2セルの関数に、A2とB2の値を使って Aシートのセル値を取得したいです。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセル 数式のコピー・貼付について
エクセルの数式のコピー・貼付について教えてください。 シート1にデータが1000行くらい入っているとします。 A B 1 100 5 2 200 3 3 350 9 : : : : : : シート2のセルA1、A2に =A1*B1 シート2のセルA3、A4に =A2*B2 シート2のセルA5、A6に =A3*B3 と、2行ずつ数式を入れたいのですが、 普通にコピー貼付をするとセル番地が自動的に 増えていってしまいます。 2行ずつ、同じセル番地の数式を入れる方法がありますでしょうか。 どうぞよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 2つのエクセルのシート間でこのようなことは出来ますか?
こんにちは 1つのエクセルファイルに2つのシートがあり(シートA、シートBとします。両シートはともに300行100列ほどの大きさで、各セルに値、数式、第3のシートセルの参照等が入っています。また、両者とも結合されたセルが散らばっていますが、結合セルの番地は同じです。)両者のシートは非常に似ているのですが、セルの中身、行列の高さ・幅が微妙に違います。 ここで2つのシートを使い、次のような新たなシートを作りたいのです。 ・セルの中身はシートAとまったく同じ。 ・行の高さと列の幅はシートBとまったく同じ。 新たなシートの中身はシートAとまったく同じなので、シートAを元にして行の高さと列の幅がシートBと同じになるようにすればよいと思うのですがやり方が分かりません。かといって1行、1列ごとにシートAの高さ、幅を変更するのも大変です。 何方か簡単に出来る方法が分かる方はいらっしゃらないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCEL(2枚のSheetの比較・抽出)
iwao32と申します。 EXCELについてまた教えてください。(まだまだど素人で、基本的な質問で申し訳ありません。) 以下の例で示します。 Sheet1 Sheet2 A列 B列 C列 A列 1 10 a 2 2 20 b 4 3 30 c 5 4 40 d 5 50 e という2枚のSheetがあるとき、Sheet1のA列とSheet2のA列を比較して、Sheet1の中で、Sheet2のA列にあるものだけ、Sheet3に、 Sheet3 A列 B列 C列 2 20 b 4 40 d 5 50 e というものを作りたいのですが、やり方をお教えください。 よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- VBA,二つのExcelのsheetにデータ保存
VBA初心者です。 皆様のお力をお貸し頂きたく質問させて頂きます。よろしくお願いいたします。 質問内容は、下記になります。 Excelのsheet1には、縦列A,B,C・・・とデータが入っております。 sheet1の例 A B C sheet2は、入力するsheetです。 今回はA列の3行目からとします。 問題は、sheet1の縦の列をA,B,C,Dとすればデータの更新は、出来るのですが sheet1のデータのA,B,C一つ飛んでEまた一つ飛んでGという感じでsheet1のデータを 飛ばしてsheet2に表示、更新(保存)をしたいと思います。 ですので、sheet2のA列の3行目からA,B,C,飛んでE飛んでGとsheet1からデータを 表示させ、さらにsheet2の入力値が変更されると、sheet1のデータが入っている A,B,C,E,Gに更新される仕様です。 sheet1(データが入っています) A , B , C , E , G , 値1 , 値2 , 値3 , 値4 , 値5 sheet2(入力する、入力したデータは、sheet1へ更新される) A列 3行目 、sheet1の値1(A列)が入ります。 4行目 、sheet1の値2(B列)が入ります。 5行目 、sheet1の値3(C列)が入ります。 6行目 、sheet1の値4(E列)が入ります。 7行目 、sheet1の値5(G列)が入ります。 以上です。申し訳ございませんが、ご教授よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- 下記別シートがあり、比較して異なる行を判別する方法を教えてください。
下記別シートがあり、比較して異なる行を判別する方法を教えてください。 (下記例では後者シートにおいて、3行目と4行目が該当します) ・判別結果表示は、後者シート上に該当する行に地色を付けるなど、フィルタで該当行をまとめられる様にできれば目印は何でも結構です。 ・後者シートは前者と比較して行(レコード)が減ったり、値が無くなることはありません。 前者に足された結果が後者になる A列 B列 C列 D列 1 a A 2 b 4 d D 5 e E A列 B列 C列 D列 1 a A 2 b 3 c C 4 d D F 5 e E
- ベストアンサー
- オフィス系ソフト
- エクセル 複数シートのデータを1シートにまとめるマクロ
エクセルの複数シートにデータがあります。同じ条件の人のデータだけをひとつのシートにまとめたいのですが、マクロを教えていただけますでしょうか。それとも、マクロ以外に良い方法がありますか? エクセル初心者なので、あたりまえのことも知らないかもしれません。。。 【データ】 ●シート1からシート20まで、同じ配列でデータがあります。 ●1行目は見出しです。2行目から1人づつのデータです。(多くても65行までと思っています。) ●A列に到達度、B列に出欠をいれました。 ●C列からM列が氏名、課題、その他のデータです。 ●リストはシート21にあります。 【こんな作業でしょうか?】 ●シート1から20で A列が「C」または「D」ならば その行のA列からM列をコピーして シート21のA列からM列に形式を値にして張り付ける ●シート1から20で B列が「欠」ならば その行のA列からM列をコピーしてシート21のA列からM列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)
- ベストアンサー
- オフィス系ソフト
- Excel VBA で二つのシートを比較抽出
Excel VBA で二つのシートを比較して合致するレコードを別のシートに抽出する方法について 下記ホームページのコードを利用させていただきました。 https://okwave.jp/qa/q5917011.html ●fax2シート B列(検索順) セル1 A 2 B 3 D 4 C ●fax3シート( 比較抽出結果) セル1 A 2 B 3 C 4 D 比較抽出結果が検索順にするにはどのようにコードを記述すればよいか教えていただけますか。
- ベストアンサー
- その他(業務ソフトウェア)
補足
ご回答ありがとうございます。 ですがシートが随時更新され、新しくなってしまうので、できたらVBAで... すいません。よくわかっていないのですがこんな形じゃだめなのでしょうか?エラーが出てしまって詰まっています;; Sub Test vcopy1 = 2 'コピー元の列 vcopy2 = 3 vpaste1 = 2 '貼り付け先の列 vpaste2 = 3 For vi = 1 To 65536 'sheet2用ループ For vj = 1 To 65536 'sheet1用ループ If Worksheets("Sheet1").Cells(vi, 1).Value = Worksheets("Sheet2").Cells(vj,1).Value Then 'sheet2で行頭から値と同じか比較 Worksheets("Sheet1").Range(Cells(vi, vcopy1), Cells(vi, vcopy2)).Copy ''あればsheet1の情報欄をコピー Worksheets("Sheet2").Paste Destination:=Worksheets("Sheet2").Range(Cells(vj, vpaste1), Cells(vj, vpaste2)) 'sheet1にペースト Exit For Else 'なければ次行 End If Next Next End Sub