[Excel]
2つの表のセル同士の突合方法について質問です。
添付の表で、
{=AND(EXACT(C4:F4,INDIRECT("I"&MATCH(C4,$I$1:$I$6,0)&":L"&MATCH(C4,$I$1:$I$6,0))))}
上記の関数を実行した場合、「行単位」で完全一致しているかどうかで結果を返してくれると思いますが、
「セル単位」ですべてのセルに結果を求めたい時はどのような関数にすれば良いでしょうか。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
その数式が何をやっているのか分かっているのであれば、
自力で工夫できるので質問することもないでしょうから、
分からないという事ですね。
この数式。本来何をやりたいかというと
=AND( EXACT(C3,I3) , EXACT(D3,J3) , EXACT(E3,K3) , EXACT(F3,L3) )
という比較ですね。
(配列数式はC3:F3の範囲を C3、D3、E3、F3 と分解するために指定しています)
しかし EXACT の2つ目の範囲が不確定なので数式で与える必要がある。
それが MATCH関数です。
=MATCH(C3,I1:I6,0)
でC3セルと同じ値をI列から検索し、一致した値がどの行にあるのかを取得し、それを参照する行番号としています。
取得した数値を使った文字列を INDIRECT関数で範囲に置き換えですね。
見た目は分かりやすいけど、ぶっちゃけスゲー面倒。
OFFSET関数で指定すれば、同じパラメータを繰り返さず同じことができます。
{=AND(EXACT(C3:F3,OFFSET($I$1,MATCH(C3,$I$1:$I$6,0)-1,0,1,4)))}
とかね。
※ OFFSET関数の使い方は自身で調べてください。
・・・
と、いうことで、AND関数を使わない形にすればセルひとつずつの比較になります。
ただし今度はセルの数だけ数式を作る必要があります。
とりあえず、元の数式を修正するのであれば……
C列の比較は
=EXACT(C3,INDIRECT("I"&MATCH($C3,$I$1:$I$6,0)))
D列の比較は
=EXACT(D3,INDIRECT("J"&MATCH($C3,$I$1:$I$6,0)))
E列の比較は
=EXACT(E3,INDIRECT("K"&MATCH($C3,$I$1:$I$6,0)))
こんな風になります。
なお、OFFSET関数を使った場合は、
これが
{=AND(EXACT(C3:F3,OFFSET($I$1,MATCH(C3,$I$1:$I$6,0)-1,0,1,4)))}
こうなる
=EXACT(C3,OFFSET($I$1,MATCH($C3,$I$1:$I$6,0)-1,COLUMN(A1)-1,1,1))
で、C3セルに対応するセルに入力後に、
下2つへフィルコピー、さらに横3つへフィルコピー
するだけで良い。
配列数式にする必要はありません。
ポイントはCOLUMN関数で横方向に指定するセルをずらしているところ。
・・・余談・・・
たぶん、条件付き書式の条件として使いたいのだろうと推測して、エラー対策はしていません。
エラーは条件成立とみなされないだけなんで処理する必要なかったりします。
質問の例であれば、
C3セルからF5セルを選択し、
C3セルに入力できる状態で、
OFFSET関数を使った数式を条件として入力、
確定後、セルの修飾方法を選択する。
で、等しい時にセルを修飾することで同じであることを判別できます。
違うところだけ色を付けたい場合は、数式をNOT関数に入れて「等しくない」を条件にしてください。
=NOT(EXACT(C3,OFFSET($I$1,MATCH($C3,$I$1:$I$6,0)-1,COLUMN(A1)-1,1,1)))
・・・独白・・・
ああ、暇なんで
「代わりに数式を作れ。オレ様の成果として使ってやるwww」
って質問に数式まで作って説明しちゃったよ。
本来は「何が分からないのかを示してください」と問いただすところなんですけどね。
「作業依頼」はルール違反なんだよ。
前の質問で指摘されなかったのが悪かったのかな。
図に乗って同じように作業依頼を出しちゃってるんだ。
見捨てられたら、何もできない子になっちゃうから注意しましょう。
No.3
- 回答日時:
こんにちは
ご質問の文章から、一方向の照合で良いものと解釈していますが、前回は右の表から左の表を参照するのに対して、今回は左の表から右の表を参照するように変わっているようですね。
>すべてのセルに結果を求めたい時は~~
個々のセルの「一致/不一致」を表示したいのだと思いますが、どのような結果にしたいのかが記述されていません。
勝手に解釈して、結果は1セルに表示するものと考えました。
項目(4項目)に対して、それぞれが合致していれば「〇」不一致なら「×」として、「○○○○」のように表示するものとしてみました。
ご提示のレイアウト(行番号が不明ですが・・)で、A3セル(=りんごのある行)に
=IF(C3="","",IFERROR(TEXTJOIN("",0,"〇",INDEX(MID("×〇",(D3:F3=OFFSET(J$1:L$1,MATCH(D3,J:J,0)-1,0))+1,1),)),"××××"))
の式を入力して、下方にフィルコピーではいかがでしょうか。
ご例示の場合であれば、結果は上から順に、
○○○○
○○○○
○○××
となります。
「○○××」の意味は、第3、4項目(=単価、合計)が不一致という意味です。
最初の項目が「×」の場合は、右側の表に該当する商品がないことを意味します。
※ スピル機能が使える環境であれば、式はもう少し簡単にできることでしょう。
No.2
- 回答日時:
どこかで見たようなご質問だなと思ったら、同じ方のご質問でした。
https://oshiete.goo.ne.jp/qa/13586196.html
>2つの表のセル同士の突合方法
というご希望ですで、私の考えるところ、どちらかが正しくて、どちらかが誤りという話ではなく、単に違いを明らかにするということだと理解しました。
ということは、「①左表から右表を見る」と「➁右表から左表を見る」という2つの視点が必要だと思います。
①の左表の項目の対応位置の照合結果を左表の下に表示する
➁の右表の項目の対応位置の照合結果を右表の下に表示する
という2点を実現させるため、バージョン365の環境ですが、画像ではC8セルに
=IF(C3="","",IFERROR(IF(EXACT(C3:F3,INDEX($I$3:$L$6,MATCH(C3,$I$3:$I$6,0),0)),"OK","相違あり"),"項目なし"))・・・(a)
という数式を記述して、下方向へコピーしています。
さらに、画像ではI8セルに、
=IF(I3="","",IFERROR(IF(EXACT(I3:L3,INDEX($C$3:$F$5,
MATCH(I3,$C$3:$C$5,0),0)),"OK","相違あり"),"該当なし"))・・・(b)
という数式を記述して、下方向へコピーしています。
なお、スピル機能の使えないバージョンでは、数式(a)(b)とも「配列数式」とする必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) excel関数について お世話になります。上のセルに関数を入れセル右下をダブルクリックすると、関数は 4 2021/11/17 12:11
- Excel(エクセル) excel VBA コピーした行を、指定列から行ペーストしたい 3 2021/10/22 13:16
- 会計ソフト・業務用ソフト エクセルの数式で教えてください。 1 2021/12/15 10:55
- Excel(エクセル) VBA セルコピーについて教えてください 1 2021/10/22 14:23
- Excel(エクセル) [Excel] 以下のような、行がズレている2つの表を関数を使って同値チェックを行いたいです。 欲し 3 2023/09/06 20:28
- 会計ソフト・業務用ソフト エクセルの数式で教えてください。 5 2021/12/15 08:43
- Excel(エクセル) エクセルの数式で教えてください。 3 2021/11/24 16:48
- Excel(エクセル) Excelの書式 2 2021/11/29 07:35
- その他(Microsoft Office) エクセルの数式で教えてください。 3 2021/12/21 09:20
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
エクセル関数またはVBAについて
Excel(エクセル)
-
「ChatGPT-3.5」の回答ですが
Excel(エクセル)
-
数字をコンマで区切った文字列の集計のマクロの修正
Excel(エクセル)
-
-
4
エクセルの計算式で教えてほしいことがあります 5000+1500✖️1.1✖️4 その後100のくら
Excel(エクセル)
-
5
Excel VBAについて【図形を組み合わせて作成した、料金別納表示の削除の仕方】
Excel(エクセル)
-
6
エクセルについて
Excel(エクセル)
-
7
[Excel] 以下のような、行がズレている2つの表を関数を使って同値チェックを行いたいです。 欲し
Excel(エクセル)
-
8
複雑なシフト表から1日ごとの出勤者、シフトを抜き出したいです
Excel(エクセル)
-
9
Excel:文字との間に数字の組合せ、次のセルの数字を1ずつ増やすには?
Excel(エクセル)
-
10
2013Excel保存済みファイルグレーアウト Excelを開こうとするとメニュー以外全てグレーにな
Excel(エクセル)
-
11
対応するExcelの計算式はありますか?
Excel(エクセル)
-
12
Excelでオートフィルをした時に,値のバグについて
Excel(エクセル)
-
13
エクセルマクロでデータ出力の際の条件がうまく機能しません。
Excel(エクセル)
-
14
エクセルで添付画像のように値を入力する方法はありますか?
Excel(エクセル)
-
15
excelの数字がE+になってしまいます。 数値に変えればセルでの見え方は治ることはわかるのですが、
Excel(エクセル)
-
16
列の総当たりチェックの方法
Excel(エクセル)
-
17
重複や複数条件でのカウント教えて下さい。
Excel(エクセル)
-
18
エクセルのcountifのワイルドカードについて
Excel(エクセル)
-
19
Excelのテーブルでmatch関数の使い方について
Excel(エクセル)
-
20
エクセルのツールバーのプルダウンメニューの順番を変えたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
-
Excelで、決まった行を繰り返し...
-
LOOKUP関数を使えばいいのでし...
-
【マクロ】ファイル名の変更に...
-
excelの不要な行の削除ができな...
-
VBA Private Sub Worksheet_Cha...
-
WPS OFFICEでの縦書きについて
-
エクセルの条件付き書式につい...
-
excel で二つのどちらかを選ぶ
-
【マクロ】フォルダからエクセ...
-
ある列、或いは、ある行のセル...
-
Aというブックの1というシート...
-
Excel:一部のフォントでセルの...
-
Excelでの時間帯の入力
-
エクセルで 例えば 伊藤と名前...
-
【マクロ】毎回、ファイル名が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報