[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストとリストの突合について』(りか)
こんにちは。
A表とB表を突合させて一致しないものをエラーとして返すことは可能でしょうか?
リストの内容としては……氏名、生年月日、部署1、部署2、IDです。
氏名、生年月日、IDは全列入力されていますが、部署1、2については入力されていたり、されていなかったりします。
完全一致しなかった人をマーキングしたいです。
関数やマクロも調べてみましたが該当するようなものを発見できず、ご教示いただけませんでしょうか。
< 使用 Excel:Excel2016、使用 OS:unknown >
A B C D E 1 山田 1987.1.1 人事部 人事課 1111 2 小林 1977.2.1 人事部 経理課 2222 3 田中 1992.3.1 総務部 総務課 3333
B表
A B C D E 1 渡辺 1987.1.1 人事部 人事課 1111 2 小林 1977.2.1 人事部 経理課 2222 3 田中 1992.3.1 総務部 総務課 3333
この場合A1の氏名がA表だと山田、B表だと渡辺なので、
A1のみマーキングを行う(不一致と分かるような表示にする)を行いたいです。
結果の反映はAB表のどちからに反映をさせるでも、新たなシートに結果を反映させるでも、どちらでも構いません。
もし可能なようであればご助言をいただけますと幸いです。
(りか) 2023/09/27(水) 23:12:44
提示例のA表がSheet1、B表がSheet2にあるとして、
A表全体を選択して、条件付き書式の数式を
=A1<>Sheet2!A1
書式を塗りつぶしにする等。
ID(一意の値)を基準にして、差異がある箇所をマーキングという話では無い?
(サラスパ) 2023/09/28(木) 08:00:46
サラスパ様 =A1<>Sheet2!A1
にて相違項目の色付けができること承知いたしました。ありがとうございます。
今まではAB表のセルで相違項目がある場合は色付けを……と思っておりましたが
おっしゃるとおりIDを基準にして差異を確認したいです。
(A表にいてB表にはいない、また、B表にいてA表にはいない人がいるため)
xlg様 元々のリストはIDの順番もばらばらですので、おっしゃる通り突合の際にソートをかけるつもりでいました。
またご指摘の通りAにはいてBにはいない……という項目(IDもとい人)がいれば、そこも差異としてマーキングを行いたいです。
xlg様の例になぞらえますと、A表には新入社員が含まれているが、B表には含まれていない。そのためその新入社員にもマーキングを行いたい。※IDの使いまわしはありません。
言葉と知識が足りず分かりづらくなってしまい申し訳ありません。
よろしくお願いいたします。
(りか) 2023/09/28(木) 13:24:26
例えば、
A表
A B C D E 1 山田 1987.1.1 人事部 人事課 1111 2 小林 1977.2.1 人事部 経理課 2222 3 田中 1992.3.1 総務部 総務課 3333 4 佐藤 1999.4.1 業務部 業務課 4444 5 斎藤 2000.5.1 企画部 企画課 6666
B表
A B C D E 1 渡辺 1987.1.1 人事部 人事課 1111 2 小林 1977.2.1 人事部 経理課 2222 3 田中 1992.3.1 総務部 総務課 3333 4 小宮 1859.4.1 業務部 業務課 5555
この場合、
・A1の氏名:山田と渡辺
・A表の佐藤、斎藤そのもの
・B表の小宮そのもの
のマーキングを行いたいです。
(りか) 2023/09/28(木) 13:51:42
IDを、E列からA列(左端列)に移動させて、 条件付き書式(VLOOKUP関数)を使うのが簡単です。
(マナ) 2023/09/28(木) 14:12:30
1. 適用先:A1:D5、数式:=A1<>INDEX(シートB!$A$1:$D$4,MATCH($E1,シートB!$E$1:$E$5,0),COLUMN(A1))
2. 適用先:A1:A5、数式:=ISERROR(MATCH($E1,シートB!$E$1:$E$4,0))
マナさんの言うように VLOOKUP が使えるように列順を変えれば多少は数式は簡単になるだろうけど。
(xlg) 2023/09/28(木) 14:57:15
xlg様 お示しいただいた数式にて、AB表の相違点およびお互いのリストに存在しない人物をマークすることができました。
大変助かりました。ありがとうございます。
マナ様 本来のリストはIDが先頭に来ているのでVLOOKUPでも試してみました。
適用先:A1:E5
式:=VLOOKUP(シートA!A1,シートB!$A$1:$E$4,1,0)
・検索の型がFALSEなので一致している部分がマーカーされてしまう
・先頭行(ID)のみ色付けされてしまい、他項目の相違が発見できない
列番号に原因があるのではないかと思うのですが、ご教示いただけませんでしょうか。
よろしくお願いいたします。
(りか) 2023/09/28(木) 16:36:33
=IFERROR(VLOOKUP($A1,シートB!$A:$E,COLUMN(A1),FALSE)<>A1,TRUE) (マナ) 2023/09/28(木) 17:03:17
(A表にいてB表にはいない、また、B表にいてA表にはいない人がいるため)
参考です。
|[A] |[B] |[C] |[D] |[E] |[F] [1] |A表 | | | | | [2] |山田|1987.1.1|人事部|人事課|1111|TRUE [3] |小林|1977.2.1|人事部|経理課|2222|FALSE [4] |田中|1992.3.1|総務部|総務課|3333|FALSE [5] |佐藤|1999.4.1|業務部|業務課|4444|TRUE [6] |斎藤|2000.5.1|企画部|企画課|6666|TRUE [7] | | | | | | [8] |B表 | | | | | [9] |渡辺|1987.1.1|人事部|人事課|1111|TRUE [10]|小林|1977.2.1|人事部|経理課|2222|FALSE [11]|田中|1992.3.1|総務部|総務課|3333|FALSE [12]|小宮|1859.4.1|業務部|業務課|5555|TRUE [13]| | | | | |
F2=NOT(NOT(ISNA(VLOOKUP($A9,$A$2:$A$6,1,FALSE)))) F9=NOT(NOT(ISNA(VLOOKUP($A9,$A$2:$A$6,1,FALSE))))
A表 条件書式 =NOT(NOT(ISNA(VLOOKUP($A9,$A$2:$A$6,1,FALSE)))) 適用範囲 A2:E6
B表 条件書式 =NOT(NOT(ISNA(VLOOKUP($A9,$A$2:$A$6,1,FALSE)))) 適用範囲 A9:E12 (IT) 2023/09/28(木) 17:26:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.