1.そもそもデータを結合できる状態になっていない
例えば「(親会社傘下の)子会社の売上を統合して分析をしたい」という依頼があった場合、下記のようなデータだとIDが異なるため、それぞれの会社の売上を揃えることはできません。
例えば株式会社Aで管理している「(株)みかん」と株式会社Bで管理している「株式会社みかん」は同一の会社ですが、IDは異なるので、結合することができないです。文字列を頼りに結合する方法もありますが、限界があるので、最終的には目検で合わせる必要があります。
解決するにはIDを統一する必要性があり、非常に労力が掛かります。小さな会社だと社員総出で実施すればさほど掛からないですが、大きな会社だと1年以上掛かる大プロジェクトになる可能性があるので、データを設計する時点でデータを分析しやすくするためにIDを統一するように設計することをおすすめします。
2.データを結合できる状態になっているが結合できない
2-1.結合するためによく使われる関数は「VLOOKUP関数」
VLOOKUP関数はデータを結合する際よく用いられ、使用頻度も高い式なので押さえておきましょう。式は「=VLOOKUP(検索値, 範囲, 列番号, 検索の型)」になります。
式に含まれている意味は以下の通りになります。
検索値:何をキーに検索して探すのか(よく用いられるのは一意で設定された「ID」)
範囲:どこの範囲から探すのか(探す範囲は絶対参照で固定してズレないように設定)
列番号:検索値を基準に何番目のデータを引っ張るのか
検索の型:完全一致か否か(TRUE:近似、FALSE:完全一致)
「株式会社みかん」の売上(L4)を引っ張りたい時の式は、「=VLOOKUP(J4,$B$4:$D$6,3,FALSE)」となります。内訳を説明すると…
検索値:修正IDの1「J4」を設定
範囲:橙色のテーブルから引っ張る必要性があるので、「$B$4:$D$6」を指定
注意点1.相対参照のままでコピーをすると、範囲がズレるので絶対参照で指定
注意点2.検索値で参照する列を必ず一番左側で設定
列番号:欲しい売上のデータは修正IDから数えると、3番目になるので「3」と設定
検索の型:完全一致でデータを引っ張りたいので、「FALSE」
ちなみに、VLOOKUP関数の進化系であるXLOOKUP関数(Excel2021以降)は注意点2で記載した「検索値で参照する列を必ず一番左側で設定」に関係なく、順不同でデータを参照することができるので便利です。
ただExcel2021以降でしか使用できないので、バージョンが異なるExcelでも動くようにVLOOKUP関数を使用することをおすすめします。
2-2.型が一致していない
2-1で使用した正しい式を利用してもエラーになっています。これは何が原因でしょうか。エラーの表示は「#N/A」で、数式で参照されている値が見つからなかった場合に表示されるエラーの種類です。
実は株式会社Aの修正IDが「文字列」になっているので、エラーが発生しています。親会社の修正IDは「数値」、株式会社Aの修正IDは「文字列」だったので計算結果が出力されない状態になっています。
文字列だった株式会社Aの修正IDを数値に直せば修正できます。
2-3.範囲指定で検索値の検索範囲が一番左側になっていない
検索値を参照する列を一番左側にしていないことが原因で、データを参照できていないことがよくあります。
上記のように修正IDが参照したい売上のデータよりも右側にあると、データを参照することができなくなります。この場合は、検索値で参照する列を入れ替えるか(修正IDをD列からB列に入れ替え、H列からF列に入れ替え)、仮に入れ替えが困難であれば位置に関係なく利用できるXLOOKUP関数を使用します。
XLOOKUP関数の計算式は「=XLOOKUP(検索値, 検索範囲, 戻り範囲, 見つからない場合, 一致モード, 検索モード)」です。式に含まれている意味は以下の通りになります。
(必須)検索値:何をキーにデータを引っ張るのか
(必須)検索範囲:どこの範囲を検索するのか
(必須)戻り範囲:どの範囲のデータを引っ張るのか
(任意)見つからない場合:検索値が発見できない場合、何を表示するか
(任意)一致モード:完全一致か、近似値も検索するか(指定しない場合、「完全一致」)
(任意)検索モード:どのような順序で検索するか(指定しない場合、「先頭から末尾」)
VLOOKUP関数「=VLOOKUP(検索値,範囲,列番号,検索の型)」よりも複雑に見えますが、基本的に利用するのは、「検索値」「検索範囲」「戻り範囲」の3つになります。具体的には以下の通りに設定すればデータを結合することができます。
(必須)検索値:修正IDの1「J4」を設定
(必須)検索範囲:上記の場合、修正IDの「$D$11:$D$13」を設定
(必須)戻り範囲:上記の場合、売上のデータを引っ張りたいので「$C$11:$C$13」を指定
2-4.範囲の指定が間違っている
VLOOKUP関数の指定範囲を誤ると正確な値を返すことができなくなります。下記の例の場合、売上のデータを反映させたいにも関わらず、C列までしか範囲を指定していないのでエラー(#REF!)が表示されています。
この場合は、正しい範囲($B4$:$D$6)に指定をすれば正しい数値を返すことができます。
2-5.完全一致で指定していない
検索の型を完全一致(FALSE)でなく、近似値(TRUE)で指定するとExcelが近しいと判断した値を参照するので、意図したデータと異なるデータを参照する可能性があるので、特段の意図がない限り「完全一致(FALSE)」で設定することをおすすめします。