アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelのプルダウンで
国番号・・・あるシートのA1~A8まで
国名・・・国番号と同じシートのB1~B8まで
2種類のリスト名をつけたとして、

別のシートのプルダウンメニューで
選択肢には国番号と国名を両方表示し、
セルに入力されるものを国番号だけにしたいのですが

何か良い方法はありませんでしょうか?
御教授お願い致します。

A 回答 (2件)

簡単な方法としては、作業列を使用しますが・・・


(1)あるシートのC2(~C8)までに
  =A2 & " " & B2 の式を記入
 (A2とB2をあわせ「国番号 国名」を作成:必要に応じてC列を非表示)
(2)プルダウンメニューに↑のC列を入力規則のリストとして設定
(3)2でメニューから選択したデータは表示通りなので、「国番号 国名」
  が表示される
(4)国番号だけにするため、別セルに(3)のセルを参照して、
  =LEFT(セル,FIND(" ",セル,1)-1)  などの式を記入しておけば、
  このセルに国番号だけを取得することが可能です。
(番号、国名とも" "を含まないと仮定して、区切りを" "とする例で示し
 ましたが、状況に応じて変えればよいでしょう。)


↑は作業列があるので、必要外の値が見えてしまいますが、他の表示を一切
したくないというのであれば、VBAを用いればよいでしょう。
(1)ブックのオープン時に「別のシート」にリストボックスを作成。
  非表示にしておく。  リストの内容は「あるシート」の国番号+国名
(2)「別シート」のActivateおよびSelectionChangeイベントで、入力対
  象セルにカーソルが来た時に、そのセル位置に合わせて(1)のリスト
  ボックスを初期化して表示
  範囲外の場合は、リストボックスを非表示に。
(3)リストボックスの値が選択されたら、その時の選択値から国番号を抜き
  出して、下にあるセルの値に代入。
(4)ブッククローズ時に、リストボックスを削除。
  (あるいは削除せず、(1)では作成するかわりに内容を更新する)
・・・というようなものを作成すれば、よいのではないでしょうか?
    • good
    • 1
この回答へのお礼

VBAなら多少分かりますので
そちらの方で進めてゆきたいと思います。
お忙しい中ありがとうございました。

お礼日時:2008/11/12 09:25

別のシートの例えばB1で国名をプルダウンメニューで選択するとA1に国番号を表示するのではどうでしょうか?



B1の入力規則をリストで元の値を=国名にします。(国名をプルダウンで選択する)
選択された国の国番号をA1に表示するために以下の式を入力します。
A1=IF(ISERROR(MATCH(B1,国名)),"",INDEX(国番号,MATCH(B1,国名),1))
    • good
    • 1
この回答へのお礼

ありがとうございました。
当方、VBAは分かるのですが、Excelの一般的な関数について
殆ど知りませんので勉強になりました。

お礼日時:2008/11/12 09:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A