こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

締切り済みの質問

エクセルの2つのシートにある情報の突き合わせ

エクセルの2つのシートにある情報の突き合わせ

エクセルの2つのシートにある情報を突き合わせて情報のマッチングをしなければならないのですが、全くうまくいかずに困っています。

例えば下記のような「受注依頼」というシートと「派遣登録情報」という2つのシートがあります。

「受注依頼」にはお客様のご依頼の仕事の情報と、派遣する予定の社員のID
「派遣登録情報」には社員のIDと名前等の情報と、所有している資格が○×で記載されています。

※列は/で区切っております。見づらくなってしまい恐縮です。

【シート1:受注依頼】
番号/件名/お客様/ニーズ/担当ID
A123/顧客情報管理システム統合/●●●●銀行株式会社/オラクル/1122
A125/顧客情報管理システム統合/●●●●銀行株式会社/C言語プログラミング/1224
A126/顧客情報管理システム統合/●●●●銀行株式会社/情報セキュリティースペシャリスト/1122
A354/代理店インフォ一元/×××××生命保険株式会社/シスアド/1224
A355/代理店インフォ一元/×××××生命保険株式会社/情報セキュリティースペシャリスト/1234
B661/経理ソフトウェア作成/○○○有限会社/C言語プログラミング/1431
C754/ホームページ作成/※※ゼミナール/webデザイン技能検定/2563

【シート2:派遣登録情報】
ID/名前/シスアド/情報セキュリティースペシャリスト/オラクル/C言語プログラミング/webデザイン技能検定
1122/山田 健一/○/○/○/○/×
1234/佐々木 久美子/○/×/×/○/×
1224/大田 秀樹/○/×/○/×/×
1431/鈴木 洋子/×/×/×/×/○
2563/徳田 紀子/○/×/×/×/×

やりたいことは、受注依頼のシートにチェックという列を追加し、受注依頼のお客様のニーズと、派遣予定の社員の所有資格がかみ合っているかをチェックしたいのです。
例えば、「受注依頼番号:A123」には社員:1122がアサインされており、彼はA123のニーズであるオラクルの資格が○になっているので、受注依頼シートのチェック列は「○」
逆に「受注依頼番号:A123」は社員:1224が登録されていますが、彼はC言語プログラミング資格を持っていないのでチェック列に「×」

というような表記が出るようにしたいのです。自分なりに調べて試したのですが、全くうまくいきません。

お分かりになる方、どうぞよろしくお願いいたします。

投稿日時 - 2010-02-15 15:17:42

QNo.5678740

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

ANo.3

マクロです

Sub test()
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim i, x, y

Set WS1 = Worksheets("受注依頼")
Set WS2 = Worksheets("派遣登録情報")

For i = 2 To WS1.Cells(Rows.Count, 5).End(xlUp).Row
For x = 2 To WS2.Cells(Rows.Count, 1).End(xlUp).Row
If WS1.Cells(i, 6).Value = "" And WS1.Cells(i, 5).Value = WS2.Cells(x, 1).Value Then
For y = 3 To 7
If WS1.Cells(i, 4).Value = WS2.Cells(1, y).Value Then
WS1.Cells(i, 6).Value = WS2.Cells(x, y).Value
Exit For
End If
Next y
End If
Next x
Next i
End Sub

参考まで

投稿日時 - 2010-02-15 21:47:10

補足

hige_082様

いただいた式を元に何度かTRYしているのですが、まだうまく突合せができておらず、
ご連絡遅くなり申し訳ありません。
ご回答いただきましてありがとうございます。

手元のデータ自体に何らかのエラー原因がありそうなので、もう一度きちんと見直し、再度入力してみます。

確認できてのち、改めまして再度お礼を申し上げたいと思います。

投稿日時 - 2010-02-19 16:01:57

-広告-

ANo.2

添付のような場合、「チェック列」を下記数式にすれば、チェックできます。ただし、エラー時の処理はしていないので、エラーを起こさないような表を作ること。

=INDEX(派遣登録情報!$A$1:$G$6,MATCH(E2,派遣登録情報!$A$1:$A$6,0),MATCH(D2,派遣登録情報!$A$1:$G$1,0))

投稿日時 - 2010-02-15 16:03:28

補足

okormazd様

いただいた式を元に何度かTRYしているのですが、まだうまく突合せができておらず、
ご連絡遅くなり申し訳ありません。
ご回答いただきましてありがとうございます。

手元のデータ自体に何らかのエラー原因がありそうなので、もう一度きちんと見直し、再度入力してみます。

確認できてのち、改めまして再度お礼を申し上げたいと思います。

投稿日時 - 2010-02-19 16:00:43

ANo.1

シート1のF2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A2="","",IF(OR(COUNTIF(Sheet2!A:A,E2)=0,COUNTIF(Sheet2!$1:$1,D2)=0),"該当するデータがシート2にありません",IF(INDEX(Sheet2!$A:$G,MATCH(E2,Sheet2!$A:$A,0),MATCH(D2,Sheet2!$1:$1,0))="○","○","×")))

投稿日時 - 2010-02-15 16:00:40

補足

KURUMITO様

いただいた式を元に何度かTRYしているのですが、まだうまく突合せができておらず、
ご連絡遅くなり申し訳ありません。
ご回答いただきましてありがとうございます。

手元のデータ自体に何らかのエラー原因がありそうなので、もう一度きちんと見直し、再度入力してみます。

確認できてのち、改めまして再度お礼を申し上げたいと思います。

投稿日時 - 2010-02-19 16:00:12

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-