[[20050321123823]] 『LOOKUP検索機能』(キャン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『LOOKUP検索機能』(キャン)

LOOKUP検索機能を用いて
プルダウンメニューから名前を選択したら
他のシートあるメンバーリストから名前を探し出し、メンバーコードを参照するっていう昨日を作りたいんですが検索しているのが「漢字」「日本語」のせいかどうか分からないんですが違う人のコードを探し出してきちゃうんですがどうすればいいのでしょうか?

EXCEL2000 XP


 どんな式か、ここに書いてください。
 (なほぴ)

 こちら↓が参考になりそうです。 (Hatch)
(e1tw)VLOOKUP関数Win
http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html


リンク先見てやってみたのですがなんか複雑になってしまいました・・・

自分が立てた式は↓
I4=LOOKUP(I5,バイトリスト!$C$3:$C$35,バイトリスト!B$3:B$35)

I5にプルダウンメニューで岡本を選択すると
バイトリストのシートから岡本を探し出して(例えばバイトリストシートC5が岡本)そのセル(C5)の左となりのセル(B5)に入力されているバイトコードがプルダウンで選ばれたセル(I5)の上のセル(I4)に反映されるという式です


 右の列を検索して、左の列を出すようですので、VLOOKUPは適当でなかったようですね m(_ _)m
 LOOKUP関数の場合、被検索値が昇順に並んでおれば良さそうですが、
 INDEXとMATCHを使った数式
=INDEX(バイトリスト!B$3:B$35,MATCH(I5バイトリスト!$C$3:$C$35,0))
 はどうでしょうか?  (Hatch)

 ご提示の式でうまく出ますよ。(検証済:Excel2000,Windows98se)
 =LOOKUP(I5,バイトリスト!$C$3:$C$35,バイトリスト!B$3:B$35)
 ただ、この式を使う場合、プルダウンの入力規則では、他シートを直接指定できませんよね。
 バイトリストシートの$C$3:$C$35に、たとえば「範囲」と名前を定義しておくとうまくいきます。
 (なほぴ)

 >ご提示の式でうまく出ますよ。(検証済:Excel2000,Windows98se)
 そうでしたか・・・ 私の回答は無視してください。 
 検証もせずに書いたので、ご迷惑をかけたようです。失礼いたしました。m(_ _)m
  (Hatch)


何かうまくでないんすよ
うまく出来る名前と出来ない名前があります(?_?)
#N/Aが表示される名前もありますし確実に表示されないんですよね

で(なほぴ)さんの言われている範囲と名前の定義ってどうやるんでしょうか? 


 >うまく出来る名前と出来ない名前があります(?_?)
 入力リストにしておけば大丈夫だと思うのですが。
 名前の定義は、名前をつけたい範囲を選択して、挿入→名前→定義で出来ます。
 (なほぴ)

 Hatch さんがお書きになっていますが。
 LOOKUP関数では、HELPで見ても分かるように、
 検索範囲が昇順になっていないと、正しい結果が出ません。
 検索値によって、正しかったり、正しくなかったりするということは、
 検索範囲(バイトリスト!$C$3:$C$35)が昇順に並んでいないのではないでしょうか。
 Hatch さんの式でもとまるはずですが、一度試してご覧になりましたか。
 (kkk)

 >入力リストにしておけば大丈夫だと思うのですが。
 やはりダメなようですね。
 私の提案は無視してください。
 すみませんでした。
 (なほぴ)

あー昇順になってないですねバラバラです
上から小さい数→下に行くに連れて大きくなればいいんですか?
でも数字と数字の間が飛んでます(12662の次が140179みたいに)けどだいじょうぶですかね?ちょっとやってみます

 迷惑の掛けついでに・・・
LOOKUP関数を使う場合、被検索値(今回の場合は名前)を昇順に並べておく必要がありますが、
文字列(日本語)の場合、ふりがなを使用しないで昇順に並べておきます。
(並べ替えのオプションで設定を確認のこと)
ついでに、前の数式の不備を修正しておきます。
=INDEX(バイトリスト!B$3:B$35,MATCH(I5,バイトリスト!$C$3:$C$35,0))
(カンマが抜けていました)
  (Hatch)

バイトコード(バイトリストc3:c35)を検索するほかに
時給(バイトリストf3:f35)も検索したいんで
どちらか昇順にしてもどっちかがごちゃ混ぜになり、
昇順じゃない方法で検索できないかと考えているのですが
バイトリストd3:d35の中から名前をピックアップして(例えばd11)その2つ右(f11)のデータを表示っていう式は可能ですか??

 LOOKUP関数を使うのなら昇順に並べておく必要があります。
 MATCHやVLOOKUP関数を使う場合は昇順でなくても昇順であってもOK。
 ただし、引数の照合の型や検索の型に注意してください。

 C列:バイトコード、D列:名前、F列:時給
 で、名前から時給を導くのなら、=VLOOKUP(○,D3:F35,3,FALSE)で良さそう。
 そして、先ほどのINDEX関数での数式を使っておられるのなら、見やすいように
 並べ替えた表にしてよいはずです。
    (Hatch)

○に参照する値入れるんですよね?

 そうです。 
 一番最初の説明とデータの配置が異なるようですので、
 C列:バイトコード、D列:名前、F列:時給 であり、
 I5の値を検索値とするなら
 =VLOOKUP(I5,バイトリスト!$D$3:$F$35,3,FALSE)
 または
 =INDEX(バイトリスト!$F$3:$F$35,MATCH(I5,バイトリスト!$D$3:$D$35,0))
 こんな感じになると思います。
 # シート名が抜けていたので、数式を修正しておきます。
  (Hatch)


出来ましたありがとうございます

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.