別シート(sheet2)に、Vlookup用マスターを作ってあります。

でsheet1に、セルF1に、=IF(H2="",""Vloouup用マスター!$A$2:$B$14,2,false)というような形で、
H2が空白だったら、空白にして、そうでなかったら、検索して、2列目を、表示ようにしてあります。
Vlookup用マスターの1列めに入っているのは、日本語の項目名で、それを、検索値として、入力すると、2列目の数字を出すようにしてあるのですが、
1列目の項目名が長いので、コピーしています。

同一シートなら、データの入力規則で、プルダウンキーを使ってリストを作る方法もあるのですが、別シートだと、それもできないようなので、
Vloouupのマスターを生かしたまま、もともとのシートに、もっと、簡単に入力できる方法が何かあったら、教えて下さい。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんにちは



 名前を使えば別のシートでも入力規則-リストが使えます。

 以下のページがご参考になるのでは?

【エクセル技道場】-入力規則-名前定義で、[リスト]で他のシートの範囲を利用
http://www2.odn.ne.jp/excel/waza/validation.html …

参考URL:http://www2.odn.ne.jp/excel/waza/validation.html …
    • good
    • 0
この回答へのお礼

ありがとうございました。
解決しました。
ああ、「名前」は思いつきませんでした(-_-;)

お礼日時:2001/03/20 08:09

前もって 謝っておきます。

チンプンカンフンの答えでしたら無視して下さい。
シート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で、検索出来なけれ
ば’****’を表示します。
質問に理解していない答えでしたら ゴメンナサイ!!!
    • good
    • 1
この回答へのお礼

ありがとうございました。
解決しました。
ISERROR関数はじめてしりました。
使わせていただきます。

お礼日時:2001/03/20 08:10

「入力規則」という機能は誠に中途半端で困った物です。


マクロを使えば自由自在ですが、本格的に書くのはちょっと....ということですね。

●コンボボックスかリストボックスを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の数字が選択したセルに貼り付けられます。

*他にもいろいろ手はあると思います。使用目的・状況に応じて工夫できると思いますので、補足してください。
    • good
    • 1
この回答へのお礼

ありがとうございました。
解決しました。

お礼日時:2001/03/20 08:08

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVLOOKUP関数で空白を選択すると「0」と表示されるのですが

VLOOKUP関数で他シートのアドレス帳から住所名前等を引き出し、別シートで宛名ラベルを作っています。
この時、何も記入されていないシートをVLOOKUPで読み込んだ場合に、宛名に「0」が表示されてしまうのですが、これを表示させない方法はどうしたらよいのでしょうか?

また以前は「0」では無く、「N#A(記憶が曖昧ですが)」のような表示がされていたんですが、どうして変ったんでしょううか?

よろしくお願いします。

Aベストアンサー

検索値が見つからない場合は #N/A エラーになります。
検索値が見つかったが、参照する列が空白の場合は 0 になります。

ISERROR や ISNA 等を使ってエラーの場合は空白にすれば、#N/A は表示されなくなります。
例)=IF(ISERROR(VLOOKUP($A2,検索範囲,2,0)),"",VLOOKUP($A2,検索範囲,2,0))

この状態で ツール-オプション-表示タブの「ゼロ値」を外せば #N/A も 0 も見えなくなります。
ただし、検索結果以外の 0 も見えなくなりますのでそれがまずいようなら、

=IF(ISERROR(VLOOKUP($A1,検索範囲,2,0)),"",IF(VLOOKUP($A1,検索範囲,2,0)=0,"",VLOOKUP($A1,検索範囲,2,0)))

のような感じにすると#N/A も 0 も見えなくなります。

Q重複するデータが含まれる列からVLOOKUPする

こんにちわ・・・

マイクロソフト、エクセルに関する質問なのですが。

「1以上の数値が入力されている列を選びだし、その列の1行目と2行目のデータを順に表示する。」

といったことがやりたいのですが、、、
うまく説明できてなくて申し訳ないです。
詳細は添付データの画像を参照ください。

何卒、ご回答のほどよろしくお願いいたします・・・

Aベストアンサー

作業列使いますが
E2セルに =IF(B2>0,ROW(),"") 下へコピィ 数値が入っている行のみ行番号を表示します。
G2セルに =IF(ISERROR(SMALL($E:$E,ROW(A1))),"",INDEX(B:B,SMALL($E:$E,ROW(A1)))) 右へコピィ。下へコピィします。
H2セル(価格)は =IF(ISERROR(SMALL($E:$E,ROW(C1))),"",INDEX(D:D,SMALL($E:$E,ROW(C1)))*F3)
下へコピィしては如何でしょうか。

Qアクセス検索フォーム【大項目→中項目→小項目と絞り込みながら検索】する方法を教えてください。

アクセス初心者です。
このサイトや手持ちのテキスト等でしばらく調べてがんばってみましたが、いろいろ試した不要なデータであふれかえってしまい拉致があかず、私が初心者であることからアクセス構築の考え方そのものにも不安があり、不勉強でお恥ずかしいのですがご質問させていただくことにしました。
お詳しい方ご教授願います。

やりたいことは、在庫管理のようなことで該当する在庫がいまどこにおいてあるのかを検索フォームを使って検索できるようにしたいのです。

在庫は大項目、中項目、小項目と分類しております。

検索フォームでコンボボックスなどを3つ配置し、大項目を一つ目のコンボボックスなどから選ぶと、次の二つ目のコンボボックスからは選んだ大項目から該当する中項目のリストが自動で選べ、中項目を選ぶと三つ目のコンボボックスからは選んだ中項目に該当する小項目のリストが自動で選べるような形にしたいと思っています。

大項目表テーブル
1 大項目1
2 大項目2
3 大項目3
というものを作って、

大項目1の中項目表テーブル
11 中項目A
12 中項目B
13 中項目C   このような中項目表テーブルは大項目1~3で3つ。
さらに、

中項目Aの小項目表テーブル
21 小項目あ
22 小項目い
23 小項目う   このような小項目表テーブルは中項目A~Cで9つ。

一応上記のような表は用意しました。


何年か前にマイクロソフトのMOS試験のアクセス2000には合格しましたが、それ以来アクセスをあまり触っておらず、いよいよ必要に背回れて困ってしまいました。不勉強で申し訳ありませんがよろしくお願いします。

アクセス初心者です。
このサイトや手持ちのテキスト等でしばらく調べてがんばってみましたが、いろいろ試した不要なデータであふれかえってしまい拉致があかず、私が初心者であることからアクセス構築の考え方そのものにも不安があり、不勉強でお恥ずかしいのですがご質問させていただくことにしました。
お詳しい方ご教授願います。

やりたいことは、在庫管理のようなことで該当する在庫がいまどこにおいてあるのかを検索フォームを使って検索できるようにしたいのです。

在庫は大項目、中項目、小項目...続きを読む

Aベストアンサー

この辺を参考に。
■コンボボックス作成の応用講座-1:SampleFile192
http://www.accessclub.jp/samplefile/samplefile_192.htm
■コンボボックス作成の応用講座-2:SampleFile193
http://www.accessclub.jp/samplefile/samplefile_193.htm

Qピボットテーブルの列フィールドの空白について

お疲れ様です。
どうしても空白をなくしたいので分かる方お願いします。
ピボットテーブルで集計をかけたとき列フィールドでCDは同じなのですが項目名が違った場合、2列集計が表示されます。その場合下の行のCDが集約されて空白になっていると思います。その空白をなくしたいのですができるのでしょうか?よろしくお願いします。

Aベストアンサー

補足拝見しました。

111_______
A商品__B商品__
200__200__

111__111__
A商品__B商品__
200__200__

上を下にしたいという事ですか?
ピボットテーブルではできないと思います。
項目名とCDを入れ替えれば

A商品__B商品__
111__111__
200__200__

このようにはなりますが、1項目の中に複数CDがあればまた同じですからね・・・

頑張ってくださいヽ(^。^)ノ

Q複数のシートに跨ってVLOOKUPするには?

複数のシートに跨っているデータをVLOOKUPで参照しようとしています。

1つめのシートには
コード番号 シート名
の2つのカラムがあり、コード番号ごとに
どのシートを参照すればよいかわかるようになっています。

参照されるほうのシートには
コード番号 値
の2つのカラムがあります。
このシートが数十存在しますが、1つのシートにまとめることは出来ません。

1つ目のシート上で、
=VLOOKUP(A1,CONCATENATE(B1,"!A:B"),2,false)
などと試してみたのですが、うまくいかないようです。
何か良い方法はないでしょうか。

Aベストアンサー

=VLOOKUP(A1,INDIRECT(CONCATENATE(B1,"!A:B")),2,false)
とする必要があります。


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

人気Q&Aランキング

おすすめ情報