是非、よろしくお願いいたします。
以下の状況です。
sheet1には A、B、C、Dという4列があります。データは1000行くらいです。
sheet2には A、B、C、Eという4列があります。データは2000行くらいです。
この状況で、sheet1のD列の右に新しい列を作り、
「sheet1の(例えば)A1、B1、C1と合致する行のsheet2のE列データ」を、
sheet2のABC列範囲を検索して抽出したいのです。
項目が一つであればvlookup関数でできるものを「複数項目に合致」のため上手くいきません。
この3列のデータを結合して一つにしてみましたが、結合後のデータが16桁以上のため末尾が「0」になってしまい、正確に検索できません。
何か上記を可能にする方法はないでしょうか?
よろしくお願いいたします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
「sheet1の(例えば)A1、B1、C1と合致する行のsheet2のE列データ」を、
sheet2のABC列範囲を検索して抽出したいのです。
この文章の意味が分かりにくいですね。例を示してこうなってほしいことを具体的に説明してくれませんか?
No.2
- 回答日時:
シート1のD列に1列挿入して今のD列をE列に移動し,
D2に
=A2&B2&C2
という式を入れて「結合」します。
こうするとご質問で書かれているような
>結合後のデータが16桁以上のため末尾が「0」になってしまい
のような事が起こらないことを,まず実際に手を動かして確認してみてください。
また,ABC列の具体的な内容が不明ですが,場合によっては
D2
=A2&"_"&B2&"_"&C2
のようにABC列のデータを区切る記号を挿入してやる必要があるかも?しれません。
アナタの実際のデータをよく見て,対応を考えてください。
同様にシート2のD列にも1列挿入して今のシート2のD列E列を一つ右に追いやり,
D2に
=A2&B2&C2
という式を入れて検索のキーとします。
あとは簡単に
シート1のF列に
F2
=IF(COUNTIF(Sheet2!D:D,D2),VLOOKUP(D2,Sheet2!D:F,3,FALSE),"該当無し")
以下コピー
のように,いつもの検索の式を入れてやればOKです。
#応用1
いまのABCDE列の並びを何かの理由で絶対崩したくないときは,VLOOKUPのための検索のキー列を「左側」に配置できないので,
INDEX(Sheet2!E:E,MATCH(結合した検索値,Sheet2!結合した検索値列,0))
のように検索をします
#応用2
具体的なデータの内容が不明ですが,シート2のE列が「数値」である場合
ここでご質問でご利用のエクセルのバージョンが明記されていませんが,Excel2007以降を使っている場合は
=SUMIFS(Sheet2!E:E,Sheet2!A:A,A2,Sheet2!B:B,B2,Sheet2!C:C,C2)
のように計算することも出来ます
Excel2003以前を使っているときは
=SUMPRODUCT((Sheet2!$A$1:$A$2000=A2)*(Sheet2!$B$1:$B$2000=B2)*(Sheet2!$C$1:$C$2000=C2),Sheet2!$E$1:$E$2000)
のように計算することも出来ますが,データ数が少し多いので,Excel2003以前でこの方法はお薦めできません。
No.3
- 回答日時:
>この3列のデータを結合して一つにしてみましたが、
>結合後のデータが16桁以上のため末尾が「0」になってしまい、正確に検索できません。
Sheet2のA、B、Cには数値が入っているのですかね。
現在、どうやって結合されているのかわかりませんが
=A1&B1&C1 と関数を使って結合させると文字列になります。
仮にA列に1列挿入して、作業列を準備しておいて
Sheet1には
=Vlookup(A1&B1&C1,Sheet2!A:D,2,False)
とかの関数で検索できるはずです。
No.5
- 回答日時:
こんばんは!
>sheet1には A、B、C、Dという4列があります。データは1000行くらいです。
>sheet2には A、B、C、Eという4列があります。データは2000行くらいです。
とありますので、オートフィルでコピーするのも大変でしょうから、VBAでの一例です。
質問通り、両Sheetともデータは1行目からあるとします。
画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面がでますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub test() 'この行から
Dim i, j As Long
Dim ws As Worksheet
Set ws = Worksheets(2)
Application.ScreenUpdating = False
Columns(5).ClearContents
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To ws.Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = ws.Cells(j, 1) And Cells(i, 2) = ws.Cells(j, 2) _
And Cells(i, 3) = ws.Cells(j, 3) Then
Cells(i, 5) = ws.Cells(j, 5)
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub 'この行まで
※ データ変更があるたびにマクロを実行します。
こんな感じではどうでしょうか?
ご希望の方法でなかったらごめんなさいね。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel質問】別シートにある複数の同型の表から、同じ行項目にある数字を集計する 4 2023/02/16 00:14
- Visual Basic(VBA) VBAで重複データを確認したい 5 2022/10/07 16:24
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) ExcelのVLOOKUP関数 7 2022/08/23 06:46
- Excel(エクセル) Countifよりも早く重複数をカウントする方法ありますか? 18 2022/07/04 13:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
MicrosoftOfficeの1ユーザー2...
-
MicrosoftOffice2019なんですが、
-
Excel 日付を比較したら、同じ...
-
Microsoft365の「お支払いを更...
-
ウィンドウィズ メモ帳で日付だ...
-
Excelで空白以外の値がある列の...
-
エクセルのシフト表を簡単にGoo...
-
理由を教えてください。
-
VBA
-
web上にあるエクセルをショート...
-
バソコンが二台とも壊れ後換装...
-
【マクロ】文字を1文字づつ、...
-
Excelのセルの重複チェックが出...
-
マイクロソフト 一時使用コード...
-
office365って抵抗感ないですか?
-
Outlook 電源OFFの受診の仕方
-
エクセルで例えば、A1に㈱ベ...
-
自分の専門分野の仕事。初見で...
-
excelの画面のグリッド線の消滅。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【スプレッドシート】指定の日...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Office 2021 Professional Plus...
-
エクセルで例えば、関数を使っ...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルで例えば、A1に㈱ベ...
-
理由を教えてください。
-
エクセルでXLOOKUP関数...
-
マイクロソフト オフィスについて
-
VLOOKUP関数について
-
teams設定教えて下さい。 ①ビデ...
-
Googleのスプレッドシートでシ...
-
【Excel VBA】PDFを作成して,...
-
Microsoft365で写真をアルバム...
-
Outlook で宛先が複数の場合の人数
-
Excel テーブル内の空白行の削除
おすすめ情報