以下のような場合の、データ抽出方法を教えてください。

Sheet1 "計画”, Sheet2 "実績”があります。

それぞれのSheetの A~Dには、共通列項目である
”都道府県””都道府県コード””品目””品番”
が設定されています。

このふたつのSheetをまとめて、項目順に”計画”データの下に”実績”データがくるようなSheetを作りたいのですが、上記4つの条件が全て共通なデータを、関数等と使って抜出すことはできるのでしょうか?

If、VLOOKUP、And、”名前をつける”などを組み合わせて、いろいろ考えてみたのですが、複数条件を満たす結果の抽出ができませんでした。

宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

いまいち、状況がわからないのですが、オートフィルタオプションでは


ダメでしょうか?

使い方はエクセルのヘルプを見て下さい。
“詳細な検索条件を使ってリストを抽出する”のヘルプを見れば使い方は
わかると思います。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELにて同じ項目を持つ2種類のデータのうち、ある項目が合致するデータを抽出する方法は?

質問タイトルが判りにくくて申し訳ありません。

質問内容は以下の通りです。
例えば、
1.自社が納品先に納品したデータ(項目としては、伝票番号、商品コード、納品数量)

2.納品先側で作成された自社から納品された商品の受領データ(項目は1と同じです)

上記の2つEXCELのデータがあるとします。

この2つのデータを見比べて納品数量の食い違いを発見したいのです。
(自社からは2個納品したはずだが、納品先側では1個しか受領していないといったものです)

この2つのデータを同じブック(シート)に貼り付けた上で伝票番号及び商品コードが合致したデータを抽出し、
なおかつ数量が違っているものを最終的に抽出したいのですが、マクロを使用せず、関数のみで抽出できる
レベルでしょうか?

詳しい操作方法の説明までは大変でしたら『こんな関数を使えばどうですか?』というような関数の名前だけでも
アドバイスしていただければ幸いです。

なお使用ソフトはEXCEL2003です。よろしくお願い致します。

Aベストアンサー

こんばんは!
No.1さんとまったく同様の回答で、重複するかと思いますが、
ExcelでSheetを作成してしまいましたので、
回答させていただきます。

↓の画像で上側が自社Sheet(Sheet1)で、下側が納品先Sheet(Sheet2)になります。

両Sheet共、D列を作業用の列とさせてもらい、
D2セルに
=CONCATENATE(A3,B3,C3)
という数式を入れ、フィルハンドルの(+)マークでダブルクリック
またはオートフィルで下へコピーします。

Sheet1のE3セルに
=IF(OR(D3="",COUNTIF(Sheet2!$D$3:$D$1000,D3)),"","×")
という数式を入れ、これまたフィルハンドルでダブルクリックかオートフィルで下へコピーします。

これでSheet1・2でデータが違う行だけに「×」が表示されます。

以上、参考になれば幸いです。m(__)m

Qエクセルでsheet2からsheet1へデータを抽出し必要な部分だけを抽出する方法を教えてください。

データベースからエクセルファイルのデータにしたものから
必要データだけを表示できるように編集したいのですが、日々20~30件増えます。
今までは列ごと削除して作成していましたが、A列のみをコピーしてそれを参照して
必要列のみを表示させるにはどうすればいいでしょうか。

すべてのデータをsheet2に貼り付け、そこから必要項目をsheet1に表示させたいです。
A列を参照して表示させるようにデータ部分の数式を↓に方向にドラッグコピーして使用するには、
おぼろげにVLOOKUPを使うのでは?と思うのですが方法がわかりません。

画像を見ていただきアドバイスをいただけないでしょうか。
よろしくお願いします。

Aベストアンサー

こんにちは!

両SheetともA列の並びは一緒なのですね?

Sheet1のB2セルに
=IF(OR($A2="",B$1=""),"",INDEX(Sheet2!$A:$Z,ROW(),MATCH(B$1,Sheet2!$1:$1,0)))
という数式を入れフィルハンドルで列・行方向にコピーしてみてください。
(Sheet2のセル全体を範囲指定しても良かったのですが、無意味のようなのでA~Z列を範囲としてみました)

※ 両SheetのA列並びが異なる場合は
=IF(OR($A2="",B$1=""),"",INDEX(Sheet2!$A:$Z,MATCH($A2,Sheet2!$A:$A,0),MATCH(B$1,Sheet2!$1:$1,0)))
という数式にしてください。m(_ _)m

QExcel2013 VBA sheet1とsheet2のデータを合成してsheet3を作るには

sheet1に氏名、sheet2にその氏名の人の趣味が入っています。

新たにsheet3を作成して、
氏名1
趣味
氏名1

氏名2
趣味
氏名2

氏名3
趣味
氏名3

氏名4
趣味
氏名4

としたいです。
VBAのコードを教えて下さい。

例えば
①sheet1には
A1;1 B1;阿部 C1;あべ
A2;2 B2;佐藤 C2;さとう
A3;3 B3;山名 C3;やまな
A4;4 B4;山本 C4;やまもと

②sheet2にはその人の趣味が入っています。

A1;1  B1;釣り C1;つり
A2;空白 B2;踊り C2;おどり
A3;空白 B3;歌 C3;うた

A4;2  B4;読書 C4;どくしょ
A5;空白 B5;野球 C5;やきゅう


A6;3 B6;映画鑑賞 C6;えいがかんしょう

A7;4  B7;釣り C7;つり
A8;空白 B8;踊り C8;おどり
A9;空白 B9;歌 C9;うた

③sheet3を新に作成して

A1;1 B1;阿部 C1;あべ
A2;空白  B2;釣り C2;つり
A3;空白 B3;踊り C3;おどり
A4;空白 B4;歌 C4;うた
A5;空白 B5;阿部 C5;あべ

A6;2 B6;佐藤 C6;さとう
A7;空白 B7;読書 C7;どくしょ
A8;空白 B8;野球 C8;やきゅう
A9;空白 B9;佐藤 C9;さとう

A10;3 B10;山名 C10;やまな
A11;空白 B11;映画鑑賞 C11;えいがかんしょう
A12;空白 B12;山名 C12;やまな

A13;4 B13;山本 C13;やまもと
A14;空白  B14;釣り C14;つり
A15;空白 B15;踊り C15;おどり
A16;空白 B16;歌 C16;うた
A17;空白 B17;山本 C17;やまもと



のようにしたいです。

実際、データは、sheet1は419列、sheet2は2563列あります。

sheet1に氏名、sheet2にその氏名の人の趣味が入っています。

新たにsheet3を作成して、
氏名1
趣味
氏名1

氏名2
趣味
氏名2

氏名3
趣味
氏名3

氏名4
趣味
氏名4

としたいです。
VBAのコードを教えて下さい。

例えば
①sheet1には
A1;1 B1;阿部 C1;あべ
A2;2 B2;佐藤 C2;さとう
A3;3 B3;山名 C3;やまな
A4;4 B4;山本 C4;やまもと

②sheet2にはその人の趣味が入っています。

A1;1  B1;釣り C1;つり
A2;空白 B2;踊り C2;おどり
A3;空白 B3;歌 ...続きを読む

Aベストアンサー

こんばんは!

Sheet3にSheet1のデータを二度表示させるのがイマイチ理解できませんが、
ご質問通りにやってみました。

Sub Sample1()
Dim i As Long, lastRow As Long, myCnt As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS2.Rows(1).Insert
wS2.Range("D:D").Insert
With Worksheets("Sheet3")
.Cells.ClearContents
lastRow = wS2.Cells(Rows.Count, "B").End(xlUp).Row
Range(wS2.Cells(2, "D"), wS2.Cells(lastRow, "D")).Formula = "=IF(A2="""",D1,A2)"
For i = 1 To wS1.Cells(Rows.Count, "A").End(xlUp).Row
With .Cells(Rows.Count, "B").End(xlUp).Offset(1)
.Value = wS1.Cells(i, "B")
.Offset(, -1) = wS1.Cells(i, "A")
.Offset(, 1) = wS1.Cells(i, "C")
End With
Set c = wS2.Range("A:A").Find(what:=wS1.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
myCnt = WorksheetFunction.CountIf(wS2.Range("D:D"), wS1.Cells(i, "A"))
.Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(myCnt, 2).Value = _
c.Offset(, 1).Resize(myCnt, 2).Value
End If
'▼
.Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(, 2).Value = _
wS1.Cells(i, "B").Resize(, 2).Value
'▲
Next i
.Rows(1).Delete
wS2.Rows(1).Delete
wS2.Range("D:D").Delete
Application.ScreenUpdating = True
.Activate
End With
MsgBox "完了"
End Sub

※ コード内の▼から▲までがもう一度Sheet1のデータを表示させているコードです。
細かい検証はしていませんが、
こんな感じではどうでしょうか?m(_ _)m

こんばんは!

Sheet3にSheet1のデータを二度表示させるのがイマイチ理解できませんが、
ご質問通りにやってみました。

Sub Sample1()
Dim i As Long, lastRow As Long, myCnt As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS2.Rows(1).Insert
wS2.Range("D:D").Insert
With Worksheets("Sheet3")
.Cells.ClearContents
lastRow = ...続きを読む

QExcel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。

Sheet1のA列・B列・C列・・・にデータが入っています。
Sheet2のA列・B列・C列・・・にデータが入っています。

Sheet1のA列とSheet2のA列は、似たようなデータが入っています。
Sheet1のB列とSheet2のB列も、同様です。
C列以降のデータは、シート間で全然関係ありません。

Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、
を知るには、どうすればよいですか。
C列以降の列のデータは、比較する際に使いません。

つまり、
Sheet1のA = Sheet2のA
かつ
Sheet1のB = Sheet2のB
であるような行を知りたいのですが、

どうすればよいのでしょうか。

Aベストアンサー

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、

Sheet1 の E1 =A1&B1
Sheet2 の E1 =A1&B1
Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

QExcel 2010 Sheet1の内容をSheet2に条件で抽出する方法

Sheet1で「担当者が山田で完成日がブランクの作業名」をSheet2のA2から下に自動で入るようにしたい。他の担当者も同様の処理を行いたい。
※もしSheet1の完成日に日付が入力されたらSheet2からは自動で削除されるようにしたい。

これは関数でどのような処理を行えば可能になるでしょうか。
自分でもいろいろと試してみたのですが、力不足でできませんでした。
詳しい方いらっしゃいましたら教えて頂ければと思います。
よろしくお願いいたします。

Aベストアンサー

こんばんは!

画像の配置通りだとSheet2のA2セルに
=IFERROR(INDEX(Sheet1!$A$1:$A$1000,SMALL(IF((Sheet1!$B$1:$B$1000=A$1)*(Sheet1!$C$1:$C$1000=""),ROW($A$1:$A$1000)),ROW(A1))),"")

配列数式になりますのでCtrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → Sheet2のA2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!

最後にA2セルのフィルハンドルで列・行方向にコピーしてみてください。m(_ _)m


人気Q&Aランキング

おすすめ情報