- ベストアンサー
Vlookup関数を生かして、入力規則をに設定する方法ってありますか?
別シート(sheet2)に、Vlookup用マスターを作ってあります。 でsheet1に、セルF1に、=IF(H2="",""Vloouup用マスター!$A$2:$B$14,2,false)というような形で、 H2が空白だったら、空白にして、そうでなかったら、検索して、2列目を、表示ようにしてあります。 Vlookup用マスターの1列めに入っているのは、日本語の項目名で、それを、検索値として、入力すると、2列目の数字を出すようにしてあるのですが、 1列目の項目名が長いので、コピーしています。 同一シートなら、データの入力規則で、プルダウンキーを使ってリストを作る方法もあるのですが、別シートだと、それもできないようなので、 Vloouupのマスターを生かしたまま、もともとのシートに、もっと、簡単に入力できる方法が何かあったら、教えて下さい。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 名前を使えば別のシートでも入力規則-リストが使えます。 以下のページがご参考になるのでは? 【エクセル技道場】-入力規則-名前定義で、[リスト]で他のシートの範囲を利用 http://www2.odn.ne.jp/excel/waza/validation.html#SEC2
その他の回答 (2)
- kei-goo
- ベストアンサー率16% (2/12)
前もって 謝っておきます。チンプンカンフンの答えでしたら無視して下さい。 シート2のVLOOKUP用マスターの検索値を 一度全件コピーしてみては コピー先は、シート1のH3に貼りつける。 実際に、VLOOKUP検索するキーは、H2のようですので、H2のカーソル から、右クリックし、「リストから選択(K)」をすれば、H3から下段が、全 て表示されるはずです。(但し、文字タイプだけだと思います) お節介ですが、himehimeさんは、IF関数とVLOOKUP関数の組み 合わせですが、この場合、H2が空白であれば空白セット 空白でなければ、V LOOKUPになっていますが、VLOOKUP検索後、一致するものがなけれ ば、#N/Aエラーになりませんか?? ISERRORをつかえば結構便利ですよ!!! 例. IF(ISERROR(VLOOKUP(H2,シート2マスター!$A$2: $B$14,2,false)),’****’,VLOOKUP(H2,シー ト2マスター!$A$2:$B$14,2,false))と云う具合に ’***’の部分はテキストでも、数式でもいいです 違うパターンのVLOO KUP関数を入れる事も出来ます。1個目のVLOOKUPで、検索出来なけれ ば’****’を表示します。 質問に理解していない答えでしたら ゴメンナサイ!!!
お礼
ありがとうございました。 解決しました。 ISERROR関数はじめてしりました。 使わせていただきます。
- stomachman
- ベストアンサー率57% (1014/1775)
「入力規則」という機能は誠に中途半端で困った物です。 マクロを使えば自由自在ですが、本格的に書くのはちょっと....ということですね。 ●コンボボックスかリストボックスをsheet1に貼り付ければ良いんじゃないでしょうか。リストボックスでやってみましょう。 ○どこにある? 表示->ツールバー->ユーザー設定で「コマンド」タブの分類:フォームを選ぶと、リストボックスが見つかります。これをツールバーにドラッグする。そして「ユーザー設定」を閉じます。 ○どうやって貼り付ける? ツールバーのリストボックスのアイコンをクリックしてから、sheet1上の好きなところにdraggingで長方形を描きます。 ○どうやって中身を表示させる? リストボックスのプロパティ(macならcontrol keyを押しながらリストボックスをclick)の中に「コントロールの書式設定...」がある。これを選んで「コントロール」タブの「範囲:」のところに問題の「sheet2にあるマスターの1列め」を指定します。そして「リンクするセル」の所にどこか適当なセル1個(たとえば$A$1としましょう)を指定します。そして「コントロールの書式設定」を閉じます。 これで、リストボックスの中に「マスターの1列め」の内容が表示されるようになります。 ○どうやって使う? リストボックスの中の行を一つ選択すると、セル$A$1に「選択したのが何行目か」の数値が表示されます。ですからindex関数を使ってsheet2にある「2列目の数字」を(Vlookupは使わないですけど)直にピックアップできます。 ●入力したいセルがいっぱいあるときは? セルH1,H2,......に同様の入力をしたいときは、各セル毎にリストボックスやコンボボックスを用意するのも間が抜けた話ですね。この場合はマクロを使うのが簡単だなあ。 つまり、セル$A$2に一旦欲しい「2列目の数字」を取り出して、次に入力したいセルを選択しておいてボタンを押すだけで、この数字がセルにペーストされるようにする。 ○$A$2に「2列目の数字」をとりだすには? セル$A$2に =index(Vloouup用マスター!$B$2:$B$14,$A$1) と入力します。 ○マクロを作る。 ツール->visual basic editorを選びます。 挿入->標準モジュールを選びます。 これでModule1(コード)というウインドウが開く。 Sub ppp() Range("A2").Copy ActiveSheet.Paste End Sub と入力します。 そしてWorksheetへ戻り、このマクロを動かす為のボタンを用意しましょう。 ○どこにある? 表示->ツールバー->ユーザー設定で「コマンド」タブの分類:フォームを選ぶと、ボタンが見つかります。これをツールバーにドラッグする。そして「ユーザー設定」を閉じます。 ○どうやって貼り付ける? ツールバーのリストボックスのアイコンをクリックしてから、sheet1上の好きなところにdraggingで長方形を描きます。 ○どうやってマクロを起動できるようにする? ボタンのプロパティの中にある「マクロの登録...」を選択。表示されるリストの中からpppを選んで[OK]。 ○どうやって使う? 先ずリストボックスで「マスターの1列め」の文字列を選択します。すると対応する「2列目の数字」がA2に表示されます。 そこで、入力したいセルを選択して、ボタンを押す。これでA2の数字が選択したセルに貼り付けられます。 *他にもいろいろ手はあると思います。使用目的・状況に応じて工夫できると思いますので、補足してください。
お礼
ありがとうございました。 解決しました。
お礼
ありがとうございました。 解決しました。 ああ、「名前」は思いつきませんでした(-_-;)