複数のプルダウンを連動させる手順 連動させるシートの例 具体的にはこのような例で利用します。 地方と都道府県のセルがあり、 地方のセルを選択すると都道府県の選択肢が変化します。 プルダウンで地方を選択すると 都道府県のプルダウンに選択した地方に対応する選択肢が表示される 地方が変わると都道府県も変化 簡単な方法 セル範囲名とINDIRECT関数 地方のプルダウン設定手順 まずこのような地方と都道府県の一覧表を用意します。 地方と都道府県の一覧表 次に地方の入力セルを選択し、メニューの「データ」より「データの入力規則」を選択します。 メニューの「データ」、「データの入力規則」の位置 次に「入力値の種類」より「リスト」を選択し、「元の値」に地方データのセル範囲を設定します。 「データの入力規則ウインドウ」の「入力値の種類」と「元の値」の位置 これによりプルダウンで地方を選択できる状態になります。 プルダウンで地方を選択 都道府県のプルダウン設定手順 都道府県を地方ごとにを設定します。 それには都道府県を地方ごとに範囲選択します。 なお空白セルは選択範囲から除く必要があります。 その状態で数式バーの左にあるセル名欄に地方の名前を入力します。 この名前は一覧表の地方名と一致する必要があります。 具体的なセルの配置 これを地方の数だけ繰り返し、このような状態にします。 一覧表のセル範囲とセル範囲名の対応 なおセル範囲名の設定を間違えた場合はする必要があります。 最後に都道府県の入力セルにプルダウンを設定します。 都道府県の入力セルを選択し、メニューの「データ」より「データの入力規則」を選択します。 「入力規則」の画面を起動し、入力値の種類を「リスト」に変更します。 そして元の値にを利用し下記の数式を設定します。 (プルダウンメニューが連動) プルダウンで地方を選択 数式の説明(読み飛ばし可) は文字列のやアドレスをセル参照に変換する関数です。 「元の値」に指定したを使用することは可能ですが セルを指定するとセル範囲でなくただの文字列として扱われます。 それでは動作しないのででセル範囲に変換する必要があります。 高度な方法 OFFSET関数とMATCH関数 セル範囲を設定する方法との相違点(メリット・デメリット) 先述のセル範囲の方法では地方ごとにセル範囲名を設定する手間があります。 (連動元の選択肢の数だけ設定の手間) また選択肢が増えたり変わる場合もセル範囲からやり直す必要があります。 とを使用した方法ではそれらの問題が解決します。 しかしそのトレードオフで数式が複雑になり理解が難しくなります。 方法 メリット デメリット セル範囲名 ・設定が簡単で分かりやすい。 ・選択肢が多いとセル範囲名設定の手間が膨大になる。 ・選択肢の変更があるとセル範囲名の設定変更が必要。 と ・設定の手間が少なく、選択肢の変更でも作業が発生しない ・数式が複雑 よってこれから紹介する方法は連動元プルダウンの選択肢が多い場合か 頻繁に変更が発生する場合にのみ検討する方法になります。 設定手順(連動先の選択肢が横方向の場合) 地方(連動元)の設定はセル範囲のものと変わりません。 都道府県(連動先)の入力規則の設定で下記のような数式を設定します。 ただしこの方法は都道府県(連動先)が横方向に並んでいる場合のみです。 縦方向の場合、数式を変える必要があります。 設定手順(連動先の選択肢が縦方向の場合) このような数式になります。 北海道は1件のみのため多くの空白が発生 これは最初の方法のは選択肢に空白を含まない範囲を選ぶことで 空白を発生させないことが可能です。 しかしとの例では連動先の最大選択肢数として 固定値(例は9)を入れた影響で全ての選択で空白を含めた9個の選択肢が 表示される状態になってしまいます。 これに対応するには入力規則に設定する数式をを入れて改造します。 ただし数式が更に長く複雑になるため、このままで問題ない場合は そのままにしておくのもよいでしょう。 まず選択肢が横方向の場合の数式です。 太字が数式の改修箇所です。 これは一度目のとで連動元の選択肢に該当する個数を で算出し、(ここが太字の改修箇所) それを二度目のとの取得件数に使用しています。 これにより余計な空白を除外することが可能です。 連動先の選択肢から不要な空白を除外した状態 ただし選択肢が空白セルなしに詰められている必要があります。 選択肢の途中に空白が混ざっていると、空白削除不可 このような状態になってしまうためこれが発生しないように 横方向なら左に、縦方向なら上に空白無しに詰めるようにしましょう。 関連記事 応用例 BMI判定をVLOOKUP関数で行う方法.
次の季節の変わり目は体調を崩しがちなので休養をしっかり取りましょう。 さて、インターネットで何かの申し込みフォームを入力するとき、住所の欄で「都道府県」を1つ選択すると、となりに その県の市区町村の選択肢が自動で出てくることってありますよね。 これ、すごいなー。 便利だなー。 エクセルのプルダウンでも同じことがやりたいなーと思い、見つけたやり方です。 上の記事では、「プルダウンリスト」の設定方法を説明いたしましたが、今回はそれを少し応用してみたいと思います。 表を作成する たとえば、こういう感じの表を作成するとします。 この表のなかで、「ユニット(職種)」と「担当者」の2か所をプルダウンで選びたい! 選んだユニットと連動して、担当者の選択肢が変わるようにしたい!とします。 リストの元データに「名前」を付ける まず、選択肢の元となるリストを作ります。 ここで活躍するのが前回説明した 「名前」の機能です。 プルダウンリストは、「名前」を使って選択肢を設定すると便利なので、必要なリスト毎に名前をつけます。 まずは1つ目の「ユニット(職種)」リスト。 A1:D1のユニット名の部分を選択し、エクセルエリアの左上にある「名前ボックス」に「ユニット」と入力し、範囲に名前をつけます。 次に、2つ目の「担当者」リストは、「ユニット」のリストの数だけ「名前」を設定します。 今回は4つです。 まずは「ディレクター」です。 A2:A10に「ディレクター」という名前が付きました。 同様に、B1:B10、C1:C10、D1:D10をそれぞれ選択し、1行目のユニット名をつけていきます。 前回も紹介しましたが、「名前」機能の便利なところは、 タイトルの入力をすることなく勝手に名前をつけてくれるところです。 便利ですねー。 プルダウンリストを設定する さて、いよいよメインの表作成にうつります。 B列の「ユニット」欄には、メンバーの所属ユニットをプルダウンリストから選択できるよう設定します。 これで、B列のプルダウンリストには、「ユニット」という名前の範囲にある4種類のユニット名が出てくるようになりました。 次に、「担当者」欄では、選んだユニットによって、そのユニットに所属する個人名がプルダウンリストに出てくるようにします。 今回の目的である、担当者を動的にするために、 プルダウンの設定も動的にしましょう。 まず、C2のセルにプルダウンリストを設定します。 それだけ。 ただそれだけです。 B2でディレクターを選んだ場合 B2で選んだユニットに連動して、C2ではそれぞれ所属している担当者だけがプルダウンリストで選べるようになりました。 簡単ですねー。 B2でエディターを選んだ場合 4. プルダウンリストの設定をコピー これでプルダウンリストの連動が完成しました。 おまけ:INDIRECT関数を使う理由 さて、これでプルダウンリストの連動はマスターしました。 ここまでの設定を覚えれば問題はないのですが、なぜこんな関数を使うの?と思った方もいると思います。 C2のプルダウン設定のお話に戻りますが、プルダウンリストを連動させるには、「元の値」のところに表示させたいリストの「名前」を入力すればいいわけです。 ユニット欄のB2で選択したユニットが、そのユニットメンバーリストの「名前」とイコールなので、「元の値」欄に動的になるような記入をすれば、選択肢が動的になるはずですね。 B2で「デザイナー」を選択したら、C2の選択肢はデザイナー7人の名前……ではなく、「デザイナー」という1択になってしまいました。 なぜだーーー。 私はこの壁に激突したとき、困り果ててしまいました。 つまり、プルダウンの設定において、「名前」機能を使うことに問題はないのです。 困ったなあ。 そこで、いろいろ調べてたどり着いたのが、今回の 「INDIRECT関数」です。 INDIRECT関数は、指定される文字列への参照を返す関数です。 参考:INDIRECT 関数 さいごに 2つのプルダウンの連動方法についてまとめましたがいかがでしたでしょうか。 思ったより簡単な設定でできるので、ぜひ参考にしていただければ幸いです。 エクセルに関する記事はこちら•
次のではプルダウンリストについてお話ししました。 納品書の商品名が、リストから選択出来るようになりましたね。 さて、商品名を選んだら次は単価を入力するのですが、これもまた億劫な作業です。 商品名が決まれば単価も自ずと決定するわけですから、商品選択と同時に単価も入力しておいて欲しいですよね。 ということで今回は、他のセルの値を連動させる方法について、ご紹介します。 では早速、前回に引続き納品書を例に進めていきます。 まず最初に、納品書とは別のシートで管理している商品名リストの隣に、単価リストを作成します。 このリストに基づき、納品書の商品名セルで商品1を選択すると、単価セルに1,000が入力されるようにしていきます。 A2:B11,2,FALSE を入力します。 これで、商品名選択と同時に単価が自動入力されるようになりました。 もう終わってしまいました。 ちょっと意味が分からないと思うので、解説します。 VLOOKUPとは、「ある値を指定した範囲から探し、それに紐づくデータを取得してくれる」Excel関数です。 それぞれの項目が示す内容は以下の通りです。 この例では、商品名セルの値。 検索値は指定した範囲の左端の列から検索されます。 この例では、商品名リストから単価リスト迄の範囲を指定しており、検索値は商品名列から検索されます。 範囲の書き方は、「シート名! 範囲の左上端セル名:範囲の右下端セル名」です。 この例では単価を取得したいので、「2」を指定しています。 TRUEを指定すると、検索値が指定範囲内に存在しない場合に近似値を検索します。 指定する内容が多いので、少しとっつきにくいかも知れませんが、意味が分かってしまえば大したことはありません。 これを使えば、「お客様名を入力したら、住所、電話番号も自動入力する」なんて事も出来るようになりますね。 使いどころの多いVLOOKUP関数、是非覚えておいて下さいね。 さて、折角ですから納品書を最後まで完成させましょう。 ) 全ての明細行に関数をコピーしたら、これで完成…… おや、何やらエラーが出ています。 これは「該当データ無し」を意味するエラーです。 明細左を見てください。 商品名が空欄ですね。 VLOOKUPの検索値が空白なので、「指定範囲を検索したけどデータが無いよ」と言っているのです。 これは困りました。 こんな表示が出ていては、印刷してお客様に渡すような使い方は出来ません。 式を変更した行は、商品名が空白でも単価にエラーが出なくなりました。 これも少し説明しましょう。 IFは、「ある条件が真の場合と、偽の場合で、表示する値を変える」Excel関数です。 この式を全ての明細行にコピーすると…… エラーの出ない納品書が完成しました。 これで安心して印刷出来ますね。 本題よりエラー対処の方が長くなってしまいました。 まぁ実際の作業も得てしてそんなモノです。 頑張って使ったExcel関数でエラーが出てしまうと、挫けそうになりますが、解決策は大体用意されています。 諦めずに色んな関数を試してみて下さいね。 次回は「プルダウンリスト同士を連動させる方法」について、紹介します。 あるセルで商品カテゴリを選んだら、別のセルでは選択カテゴリの商品のみ選択出来るようにしたい。 そんな内容です。 このようなExcelの機能を駆使すれば、様々な入力作業が大幅に削減できます。 Excelの機能自体は何も目新しいものではありませんが、自社が今まで使っていなかった機能を利用して業務が変わるのならば、それは一つのイノベーションと言っても良いのではないでしょうか? 色々と工夫できることは多そうだけど、自分たちでやるには知識も時間も足りないとお困りの方は、業務内容をお聞かせ頂ければ、Excel機能を始めとするITの知見で最適な改善方法をご提案します。 最初のご相談は無料ですので、是非お気軽に.
次の