- ベストアンサー
このエクセル2003で、次のような事が出来ましたらご教授ください。
このエクセル2003で、次のような事が出来ましたらご教授ください。 数字を入れたら、名前が出るようにしたいのですが、出来ますでしょうか? 例えば、8と入れたら下のセルに名前が出る、名前はまずいのでバナナ。2と入れたらリンゴと出る。5と入れたらブドウと出る。 数字を入力するのは、順番ではなく適当です。名前の数は71名です。 初心者の私には、むずかしいようでしたらあきらめます。 宜しくお願い致します。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
シート1の1行目に数値を入力するとして2行目に名前を表示させるとしたら、A2セルに次の式を入力して右横方向にオートフィルドラッグします。 =IF(AND(A1>0,A1<=36),INDEX(Sheet2!$A:$A,A1),IF(AND(A1>=37,A1<=71),INDEX(Sheet2!$B:$B,A1),"")) この式ではシート2のA1セルからA36セルに間に名前があり、B37セルからB71セルの間に名前があるとしています。
その他の回答 (7)
リストを縦方向に並べられないのでしたら、単純にシート1のA2の 隣のB2セルにでも表示させればいいのではないですか。 B2に同じパターンの式を入力し、 「1~36」まではA1に「37以降」はB1にナンバーを入れるように してはいかがですか。 B2に =IF(B1="","",VLOOKUP(B1,Sheet2!C:D,2,FALSE)) で表示できます。 1つのセルで、横並びの表を参照するには、「名前の定義」などをして 複数の関数を入れればできるかもしれませんが、面倒です。
お礼
ご回答、ありがとうございました。 何回もやり直しをしたり挑戦してみました。 私のやり方が悪いのでしょう、どうも上手く出来ませんでした。 「名前の定義」などを入れたりとかなり面倒そうでうね。 もっと勉強して、挑戦したいと思います。 大変にありがとうございました。m(_ _)m
[回答番号:No.3この回答へのお礼]へのコメント、 》 しかし、空白の時エラー表示になってしまします おやおや、「空白の時エラー表示になって」欲しくないなんて、最初の質問には書いてなかったじゃありませんか!だから少しも「おしい」とは思っていません。 ま、それはソレとして… 式を入力するセル B2 に次の[条件付き書式]を事前に設定すれば済むことです。 数式が =ISERROR(B2) フォント色 白 22010/10/09 12:48
お礼
ご回答、ありがとうございます。 御返事が大変に遅くなり、すみませんでした。 申し訳ございませんが、ここは文句を言う場所じゃないと思います。 始めの質問にも書きましたが、私は初心者です。 エラーが出れば、あれっ?と思うのは私だけでしょうか? お気に召さない言葉がございましたら、申し訳ございませんでした。 大変にありがとうございました。m(_ _)m
シート1のA1に「名前」というタイトル。その下のA2に名前を 表示させる。B1を「ナンバー入力」セルとします。 シート2の表は、縦1列に入力して下さい。横2列に分けると2つの式を 作る必要があり、面倒です。シンプルにした方が、後で手を加える時 楽です。 シート2に既に名前の一覧があるのでしたら、B列に名前を縦に揃えます。 1.37~71の名前のセル範囲を選択します。 選択はドラッグしてもいいですが、37のセルをクリック。 最後のセルをShiftキーを押しながらクリック。これで楽に選択できます。 2.その選択内で右クリック→コピー。 あるいはCtrlを押しながらCを打鍵。コピーのショートカットキーです。 3.36の名前の下のセルをクリック。右クリック→貼り付け。 あるいは、Ctrlを押しながらVを打鍵。 これで、1列に名前が並びます。 A列のナンバリングは、最初のセルと下のセルに1,2と入力。 2つのセルをドラッグし、右下かどにマウスを当てると、+の形になるので、 (フィルハンドルという)Wクリック。 これで、71までナンバーが入ります。 以上で、シート2のA列にナンバー。B列に名前が入力されたとします。 最上にタイトルはあっても、なくても構いません。 4.シート1のA2のセルに =IF(B1="","",VLOOKUP(B1,Sheet2!A:B,2,FALSE)) と入力して下さい。 関数ウィザードで入力すると楽ですが、今は手入力するとして ご説明しています。 Sheet2!A:B は、シート2のA列からB列の最下行まで全て、という意味です。 (列全部を選択するには上の列見出しをドラッグしますが、今は手入力なので 気にしないで下さい。) 列全体を選択する事により、絶対参照にしたのと同じ事になり、 今後71の下に名簿を追加しても、手を加えることなく表示されます。
お礼
遅くなりまして、すみません。m(_ _)m ご回答、ありがとうございます。 シート2のリストが出ました!(^0^)/ ありがとうございます。 シート2のリストは、残念な事に横1列に出来れば良いのですが、決まった書式で勝手に変更する事が出来ません。(>_<) 横2列は、やはり大変になりますでしょうか。 もし、可能でしたらご教授をお願いしたいと思います。 しかし、面倒で大変なようでしたら、無理なさらないでください。 本当にありがとうございました。 尚、また席を離れてしまい御返事が遅くなる可能性がございます。ご了承願います。m(_ _)m
mike_g さん、こんにちは。添付の表をお借りして 宜しいでしょうか? こちらの表に従って、関数を入れるなら、 =IF(A2="","",VLOOKUP(A2,$D$1:$E$72,2,false)) とすれば、A2に何も入力していない時、エラー表示が出ず、 「空白」になります。 関数は「半角」で入力して下さい。英字は大文字・小文字どちら でもOKです。 「""」 は空白を意味します。 「2」は別表の左から2列目を表示させる。 「false」は完全に一致したデータを表示する。 という意味です。 mike_g さん、失礼致しました。
補足
空白の時、エラー表示がありません! これです! すばらしいです! また、意味も載せて頂き、ありがとうございます。 別シートの縦2列の名前リスト(1列目は1~36、2列目は37~71)から持って来たいのですが、式のどこをどの様に変えれば可能でしょうか? よろしくお願い致します。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばシート2をデータベースとしてA1セルから下方に数値を入力し、それに対応する名前をB1セルから下方に入力します。 その上で例えばシート1のA2セルから下方に番号を入力するとして、その番号に相当する名前をB2セルから下方に表示させるとしたら次の式をB2セルに入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(Sheet2!A:A,A2)=0,"該当のデータなし",VLOOKUP(A2,Sheet2!A:B,2,FALSE)))
お礼
別シートから持ってくるのは、私のやりたい事ですが、数字の下のセルに名前を出したいので、ちょっと違います。 ありがとうございました。
VLOOKUP関数を使えばできます。 あらかじめ。名前の入力した表を作成しておきます。この表の 左の列に、ナンバーを入れます。 このナンバーを入力すると、該当の名前がセルに出ます。 下記に作り方のリンクを貼るので、研究なさって下さい。 表のセル範囲は「絶対参照」にする事をお忘れなく。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/vlookup.htm
お礼
お早いご回答、恐れ入ります。 良いサイトをご紹介頂き、ありがとうございます。 勉強させて頂きます。 ありがとうございました。
お礼
ご回答、ありがとうございます。 御返事が大変に遅くなりまして、すみませんでした。 これです! これが欲しかったのです! 私の希望通りでしたので、ベストアンサーにさせて頂きます。 大変にありがとうございました。m(_ _)m