Excel INDIRECT

【Excel】リスト化をIndirectで実行する際の文字制限

投稿日:2020年4月8日 更新日:

セルをIndirectで動的にリスト化しようとした際、躓いたことを記事にします。

まずは、シート上を以下のように準備します。

B1をA1の内容に合わせて動的にリスト化します。例えば、A1に北海道と入力されたとき、B1のリスト内で「ほ」「っ」「か」「い」「ど」「う」が選択できるような状態にしていきます。青森、秋田についても同様の状態にしていきます。

動的リスト化をするためには、参照範囲に名前の定義を行います。

数式タブ>名前の管理>新規作成をクリックします。

名前と参照範囲を埋めてOKボタンをクリックします。
名前の定義を北海道、青森、秋田の3つについて行います。

B1セルを選択した状態で、データタブ>データの入力規則をクリックします。

設定タブ>入力値の種類を「リスト」を選択し、元の値「=INDIRECT($A$1)」を入力し、OKボタンをクリックします。

A1セルに「北海道」が入力されている場合、B1セルのリスト内が「ほ」「っ」「か」「い」「ど」「う」となっていることが確認できます。

A1セルに「青森」が入力されている場合も、B1セルでは同様の状態となっていることが確認できます。

続いてExcelシート上を下図のように編集します。先程とは少し異なり、都道府県名(読み方)となっています。

今度は、参照範囲に対して名前を「北海道(ほっかいどう)」とし、OKをクリックします。

以下のようなエラーメッセージが表示されました。
名前の管理では、「全角の()」が無効な文字となっているようです。

名前の管理で参照範囲に名前を付け、データの入力規則でINDIRECT関数を用いて動的リストとする方法だと、「全角の()」が扱えないことが判明しました。「全角の()」をどうしても付けたまま動的リスト化をしたい場合は、VBAを用いて「都道府県名(読み方)」の部分についてIF文を記述し、マクロによりリスト化すれば実現できそうです。

VBAにより、セルをリスト化する方法は以下の関連記事を参考にしてください。

-Excel, INDIRECT

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【SAS】SASで良く使うテクニック。その8 「=」~修正前後のプログラムを比較したい時~【Excel】【VBA】

今回はSASで良く使うテクニックということで、修正前後のプログラムを比較したい時は、「=」が役に立つ理由を解説していきます。(このテクニックはコーディングなら、SASに限らず、VBAでも他のどの言語で …

CSVファイルをエクセルシートに展開する方法

今回はカンマ区切りのCSVファイルをExcelのシートに展開する方法について解説します。 [目次] 1.Excelで開く方法【問題あり】2.データ区切りを使う方法3.データの取得を使う方法 1.Exc …

【SAS】SASで良く使うテクニック。その4 「参照元のトレース」~データセットの差分がある箇所を探すのに便利~【Excel】

今回はSASで良く使うテクニックということで、データセットの差分がある箇所を探すときは「参照元のトレース」が役に立つ理由を解説していきます。 (参考:【SAS】SASで良く使うテクニック。その1 Ex …

【SAS】SASで良く使うテクニック。その1 Excel関数のIF~2テーブルを比較したいとき~

今回はSASで良く使うテクニックということで、2テーブルを比較するときはExcelでIF関数を使うと良い理由を解説していきます。 ぜひ、やってみてください。 まずは比較したいデータセット2つをExce …

Enum(列挙型)の使い方

今回はEnumの使い方について解説します。(参考元:moug) Excelではいくつかの色にインデックス番号が割り振られており、ColorIndexプロパティに対応した数値を当てはめると、今回ではA1 …