【エクセル(INDEX+MATCHで解決)】条件に連動させてリストの数値を変更したい!

PC操作

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

 このページでは、エクセルの「INDEX関数」と「MATCH関数」を組み合わせることで、条件に一致したデータを自動で検索し、変更前のリストから変更後のリストの数値へ、楽に変更する方法をご紹介します。

変更したデータの例

「INDEX関数」と「MATCH関数」は、大量のデータの中で、特定の一部だけデータを変更したいという場合に有効です。もちろんデータは、数値だけではなく文字列でも扱うことができます。

手順解説

 このページではExcel(エクセル)が使えて、セルの中に直接関数(=から始まる英数字で構成された式)を入力できることが前提になっています。

【手順1】元リストを用意する

 まずは、変更したい、元リストを用意をします。下図のA~D列の3~22行目が元リストにあたると考えてください。
番号が1から20までのデータがあり、それぞれの番号は数値1~3までの数値データを持っています。
例えば、「番号:1」のデータは「数値1=6.4」、「数値2=2.0」、「数値3=76.0」の数値データを持っています。3次元空間上の「ある点A」に対する「(X,Y,Z)座標」のようなイメージです。

【手順2】変更したいデータの条件を作る

 特定の番号のデータの「数値3」にそれぞれ「番号×100」の数値を加算(プラス)したいという場合を想定しました。
E~H列の3~10行目が変更(加算)したい数値の一覧です。「数値1」と「数値2」には加算しないため、「0」としています。
また、番号の並びは上から「6,12,1,9,3,17,11,4」とランダムにしています。これは、必ずしも数値が昇順や降順に並んでいなくても「INDEX関数」と「MATCH関数」が使えることを示すために、あえてランダムな並びとしています。

【手順3】変更後のリストを作成する

 いよいよ本題に入ります。元のリストのうち、変更したい番号に該当する「数値3」のデータを変更します。具体的には、変更したい番号の元々の数値3のデータに、「番号×100」を加算した数値を変更後のリストにします。

最終的な関数の具体例

=D3+IFERROR(INDEX($E$3:$H$10,MATCH(I3,$E$3:$E$10,0),4),0)
 このページで使用しているのは以下の3つの関数です。
①IFERROR関数
②INDEX関数
③MATCH関数

「IFERROR関数」の説明

 IFERROR関数は、数値が取得できずに、エラー(#N/A)となってしまった場合に、どのような値とするかを指定する関数です。
 変更するリストには、指定したデータと、指定していないデータが存在します。このページの例で、指定したデータとは「番号6,12,1,9,3,17,11,4」を差します。
「INDEX関数を用いた場合、変更するか条件を調べるセルのデータと同じ値(文字列)が、変更リストの条件検索範囲にある場合は数値(文字列)を返してくれますが、指定していないデータの場合、エラー(#N/A)を返されることになります。そのため、変更リストの指定したデータに該当しない場合、どのような値とするかを指定する必要があります。
具体的には、該当しないデータの場合は何も変更しない(加算しない)ため、「0」にするということにします。

「INDEX関数」の説明

 INDEX関数は、リスト(行列)の範囲を指定し、その行番号と、列番号を指定することで、リストの範囲内から指定した行と列に該当するセルのデータを取得する関数です。
行は、縦方向の番地。列は横方向の番地のことです。行と列を指定することで、リスト中で指定した行と列が交差した位置のセルのデータを取得するようなイメージです。

「MATCH関数」の説明

 MATCH関数は、一方向(縦もしくは横方向)のリストから一致するデータを検索します。調べるセルとリストのデータが一致した場合は、リストの何番目が一致したかを取得します。リストが縦方向の場合は上から、横方向の場合は左から何番目かを返します。

「INDEX関数」と「MATCH関数」のまとめ

 このページの内容のまとめを示します。
  1. INDEX関数により、リストから行と列を指定して、指定した箇所のデータを取得します。
  2. MATCH関数により、リストから条件に一致する行もしくは列を取得します。
  3. MATCH関数で取得した行、もしくは列をINDEX関数に組み込むことで、条件に一致するデータと連動させたリストのデータを扱うことができます。
 以上、備忘録のために、今回の記事を作成しました。何かのお役に立てば幸いです。
タイトルとURLをコピーしました