【エクセル】リストの中のデータを置き換えたい!(INDIRECT+MATCHで解決)

PC操作

このページの内容で出来ること

 このページは、エクセルのリスト中のデータの一部を簡単に変更したいという方向けです。「INDIRECT関数」と「MATCH関数」を組み合わせることで、変更前のリストから変更後のリストの数値へ、楽に変更することができます。
大量のデータの中で、一部だけ数値を変更したいという場合に便利です。また、数値だけではなく文字列を変更したいという場合も同様に使えます。参考にしてください。

手順解説

 手順解説のまえに、このページではExcel(エクセル)が使えて、セルの中に直接関数を入力することができることが前提になっています。

手順1.元データを用意する

 まずは、変更したい、元データの用意をします。図の場合、A列が元データにあたります。

手順2.変更前・後リストを用意する

 図のB列が変更前のリストです。ここで、変更前のリストとは、元データの中で、変更したい数値を集めたリストを指します。この例では、元データの中で、5の倍数となっていない「23,59,91,94」を集めています。
図のC列が変更後のリストです。リストの作り方の注意点として、変更前と変更後の数値を1対1で対応させてください。「23→25」・・・「94→95」に変更したいため、変更後のリストは、「25,60,90,95」としました。

手順3.セルに関数を打ち込む

実際にエクセルでリストを簡単に変更するためには、選択したセルがリストに無い数値だった場合のために「IFERROR関数」を使用していますが、今回の記事では割愛します。

INDIRECT+MATCH関数

 変更後のデータ(D列)に関数を記入します。D2セルは以下の記載内容となります。
INDIRECT("C"&MATCH(A2,$B$2:$B$5,0)+1)
 「INDIRECT」は「間接的な」という意味です。「MATCH」は「一致」という意味です。これらを組み合わせることで変更前のリストから変更後のリストの数値へ、楽に変更することができます。 セルに入力した中身を、細かく見ていきます。
“C”:変更前のリストがある列
MATCH(A2:元データとなるセルの位置
$B$2:$B$5:変更前リストの範囲(参照範囲が動かないよう”$”をつける)
0:完全に一致する条件
+1:変更前リストの1列右側(+1)つまり変更後リスト
 次に、D3のセルを見てみます。A2→A3となっているだけであることを確認します。

まとめ

備忘録のために、今回の記事を作成しました。IF関数で数値をいちいち指定して変更する作業が手間に感じたため、解決策を探し、INDIRECT関数とMATCH関数にたどり着きました。

 もっと簡単な方法があれば、コメントで教えていただけると嬉しいです!
タイトルとURLをコピーしました