目次
セルが自動的に埋められたらどんなに良いでしょうか? ほとんどの場合、私たちはそれを愛するでしょう。 今日は、別のセルからの値に基づいてExcelでセルを自動入力する方法を紹介します。 このセッションでは、Excel 2019を使用するつもりです、あなたの好みのバージョンを使用して自由に感じなさい。
まず最初に、今日の例のベースとなるデータセットについて知っておきましょう。
ここでは、従業員の名前、ID、住所、部署、入社日などの情報を含むテーブルがあります。 このデータを使って、セルに自動的にデータを入力する方法を説明します。
これはダミーデータを含む基本的なデータセットであることに注意してください。実際のシナリオでは、もっと大規模で複雑なデータセットに遭遇することがあります。
練習用ワークブック
練習用ワークブックは、下記リンクからダウンロードしてください。
別のセルに基づいたExcelのセルの自動入力.xlsx別のセルに基づくセルの自動入力
ここでは、従業員の名前を入力すると、その人の情報が自動的に検索されるように設定しています。
ここでは、元のテーブルから分離した情報フィールドを導入しています。 ここでは、その情報フィールドを 氏名、ロバート .
では、その詳細を ロバート どうすればいいのか、考えてみましょう。
1.VLOOKUP関数を使う
ちょっと「自動入力」のことは忘れて、条件に合ったデータを取り出すことを考えてみてください。 どのような機能が思い浮かぶでしょうか? 極めて当たり前のことです。 ブイルック もその一つです。
ブイルック VLOOKUPの詳細については、こちらの記事を参照してください。
今度は、それを使った数式を書きます。 ブイルック 関数を使用すると、セルに必要なデータを正確に取得することができます。
従業員のidを導き出す式を書いてみましょう。
=iferror(vlookup($i$4,$b$4:$f$9,2,0),"")
内 ブイルック 関数に、名前( I4) として ルックアップバリュー .すると、テーブルの範囲全体が ルックアップ_アレイ .
があります。 社員ID は2列目なので、2としています。 列番号 .
を使用しました。 イフエラー をラップするための関数です。 ブイルック これにより、数式から発生するすべてのエラーを取り除くことができます(この関数については、記事:IFERRORを参照してください)。
部門名を導き出すには、計算式を修正する必要があります。
=iferror(vlookup($i$4,$b$4:$f$9,3,0),"")
ここでは 列番号 は、元のテーブルの位置に従っています。 部署名 は3列目なので、3を使っています。
については 入社年月 とのことです。 住所 という式になります。
=iferror(vlookup($i$4,$b$4:$f$9,4,0),"")
そして
=iferror(vlookup($i$4,$b$4:$f$9,5,0),"")従業員の詳細が判明しましたので、名前を変更するとセルが自動更新されます。
ドロップダウン・リスト付きVLOOKUP
先ほどは手動で名前を入力しましたが、時には手間がかかるだけでなく、混乱することもあります。
この問題を解決するには、従業員名のドロップダウンリストを作成します。 ドロップダウンリストの作成方法については、記事を参照してください。
での データバリデーション ダイアログボックスで リスト と入力し、名前のセルリファレンスを挿入します。
B4:B9 は、名前を含む範囲です。
ここで、ドロップダウンリストを見つけます。
より効果的に、より素早く名前を選べるようになったのです。
を使用したため、他のセルは自動的に入力されています。 ブイルック .
2.INDEX-MATCH関数を使う
を通して行った操作です。 ブイルック を組み合わせてもよい。 INDEX-MATCH をクリックすると、自動的にセルに入力されます。
MATCH は、行、列、または表におけるルックアップ値の位置を示す。 INDEX は、範囲内の指定された位置の値を返します。 詳しくは、INDEX、MATCHの記事をご覧ください。
数式は以下のものになります。
=iferror(index($c$4:$c$9,match($i$4,$b$4:$b$9,0)),"")
ここでは、idの範囲を以下のように指定しているので、計算式はid番号を導出します。 INDEX とのことです。 MATCH 関数は、テーブルの基準値と一致する行番号を提供します ( B4:B9 ).
を導き出すために 部署名 で範囲を変更します。 INDEX となり、以下のような数式になります。
=iferror(index($d$4:$d$9,match($i$4,$b$4:$b$9,0)),"")
部門は、以下のとおりです。 D4 まで D9 .
の計算式は、以下の通りです。 入社年月 であろう
=iferror(index($e$4:$e$9,match($i$4,$b$4:$b$9,0)),"")
また、アドレスについては
=iferror(index($f$4:$f$9,match($i$4,$b$4:$b$9,0)),"")
では、わかりやすくするために、選択範囲を消して、任意の名前を選択してみましょう
他のセルにも自動的に入力されることがわかります。
3.HLOOKUP関数を使う
データが水平方向に配置されている場合は HLOOKUP この関数については、HLOOKUPの記事をご覧ください。
名称 フィールドはドロップダウン・リストから設定され、残りのフィールドは自動的に入力されます。
idの導出には、以下の式を用いることにします。
=iferror(hlookup($c$11,$c$3:$h$7,2,0),"")
と同様の操作となります。 ブイルック の式で表されます。 HLOOKUP 関数として、名前を提供しています。 ルックアップバリュー として、テーブルを ルックアップ_アレイ 2行目にIDがあるので 行番号 は2、完全一致は0です。
さて、部門の場合、計算式は次のようになります。
=iferror(hlookup($c$11,$c$3:$h$7,3,0),"")
があります。 部署名 は3列目なので 行番号 はここで3です。
入社日の計算式を書いてみよう
=iferror(hlookup($c$11,$c$3:$h$7,4,0),"")
があります。 入社年月 は4列目なので 行番号 はここで4となり、アドレスは行番号を5に変更します。
=iferror(hlookup($c$11,$c$3:$h$7,5,0),"")
セルを消して、ドロップダウンリストで名前を選んでみよう
名前を選択すると、他のセルが自動的に入力されることがわかります。
4.行のINDEX-MATCH
また INDEX MATCH の組み合わせで、以下のような数式になります。
=iferror(index($c$4:$h$4,match($c$11,$c$3:$h$3,0)),"")
これはidを導出するためのものなので C4:H4 において INDEX という関数があります。 社員ID 行になります。
行の範囲を変更して部門を検索する
=iferror(index($c$5:$h$5,match($c$11,$c$3:$h$3,0)),"")
同様に、入社日と住所の行番号も変更します
=iferror(index($c$6:$h$6,match($c$11,$c$3:$h$3,0)),"")
こちら C6:H6 は 入社年月 行になります。
そして、その C7:H7 は 住所 という行があるので、アドレスの導出式は以下のようになります。
=iferror(index($c$7:$h$7,match($c$11,$c$3:$h$3,0)),"")結論
以上、セルを基準にした自動入力の方法をいくつか紹介しました。 参考になれば幸いです。 分かりにくいところがあれば、お気軽にコメントください。 また、他に見落とした方法があれば教えてください。