[[20030910144224]] 『LOOKUPのありがたみ』(nana7) ページの最後に飛ぶ

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

 

『LOOKUPのありがたみ』(nana7)

こんにちは。LOOKUPって何に使いますか?どういうとき便利ですか?VLOOKUP HLOOKUPはわかるのですが、、、できれば具体的に例をあげてもらえたら嬉しいです。


 Excelのヘルプ↓によると、別に使う必要はないような…
 通常は、配列形式の LOOKUP 関数の代わりに、HLOOKUP 関数 (先頭行を検索) または VLOOKUP 関数 (先頭列を検索) を利用するようにしてください。
 配列形式の LOOKUP 関数は、他の表計算アプリケーションとの互換性を維持するために用意されている関数です。
 (YS)


ありがとうございます。意味を理解できなかったので、もやがはれました!(nana7)

 あ、ありました!
 LOOKUP 関数の形式には、ベクトル形式と配列形式の 2 種類がありますが、
 ベクトル形式の方は、LOOKUP(検査値, 検査範囲, 対応範囲)となります。
 LOOKUP(A1,B1:B10,C6:C15)のように、検索する範囲と返す値の入っている範囲が
 B1:C10のようにくっついていなくても使えますね。

 配列形式の方は、
「配列 の先頭行または先頭列で 検査値 を検索し、検査値 が見つかると、
 下方向または左方向の最終セルに含まれる値を返します。」ということなので、
 VLOOKUPやHLOOKUPのように何列目(又は何行目)と指定しなくて良い(指定できない)
 ってことなので、敢えて使う必要はないかな。
 (YS)

 Yosh!です。衝突しました。
YSさんが紹介して下さったベクトル形式の使用方法に関して補足になると思いますので、
下記HPを参照してみて下さい。(Yosh!)
WPC ARENA LOOKUP関数で検索・表引きが自由自在
http://arena.nikkeibp.co.jp/tec/excel/gaz/216/

1行目に 4月 5月、、と3月まで行方向に並んでいて
A列に い ろ は と製品名があります。

そこから他のシートで どこかにセルを用意してたとえば4月 と「入力したときに
 下に4月のデータだけだす、とかのときのLOOKUPを使いたいということなのですが
まったく結びつきません。。。。CHOOSEでやっちゃったのですけど応用できますか?(nana7)

  4月    5月    6月

い  10   11     9

ろ  20    9    13

は  15   21    20

   これを↓

    今月のデータ   「5月」   ←こんな風にセルを作っておいてここだけ入力

い   11              ←すると一覧がぱっとでる。    

ろ    9

は   21

(nana7)


 1列目の「い」「ろ」「は」が毎回変わるならCHOOSEですが、
 例に書かれている内容ならCHOOSEでなくていいですね。

 方法1.HLOOKUPを使う
 元のデータがSheet1のA1:M4にあるとして、Sheet2のB2に=HLOOKUP($B$1,Sheet1!$A$1:M4,ROW())
   A   B
 1    5月←ここを毎回入力
 2 い  =HLOOKUP($B$1,Sheet1!$A$1:M4,ROW())
 3 ろ  コピー
 4 は  コピー

 方法2.LOOKUP(配列形式)を使う
    方法1と同様にして Sheet2のB2には =LOOKUP($B$1,Sheet1!$A$1:M2)

 方法3.元のデータの行列を入れ替え、オートフィルタを使う
    データベースとしては、こちらの方がお奨めかな。
 (YS)

方法2でうまくいきました!でも 今B列に答えを出しているのですがF列にも同じ答えをだそうとして まったく同じ式を入れたらできませんでした、、、
しかし 丸写しなのに申し訳ないのですが ROW() の意味がわかりませんごめんなさい。
(nana7)

 >F列にも同じ答えをだそうとして まったく同じ式を入れたら
 全く同じ式を =LOOKUP($B$1,Sheet1!$A$1:M2) F2に入力したならちゃんと出るはずです。
 =LOOKUP($F$1,Sheet1!$A$1:M2) と入力してF1にはデータが入っていないとか?
 それとも、B2:B4をF2:F4にコピーして=LOOKUP($B$1,Sheet1!$A$1:Q2)になってしまったとか?
 後者だったら、 =LOOKUP($B$1,Sheet1!$A$1:$M2)にしておけばコピーしてもずれません。

 >ROW() の意味
 何行目かを表示します。A1に=ROW()をいれたら1、B5に=ROW()を入れたら5になります。
 例ではSheet1のとSheet2のい」「ろ」「は」が同じ行にあるのでROW()ですが、
 Sheet2のA1:B4ではなくA11:B14に表示したい場合はB12に =HLOOKUP($B$1,Sheet1!$A$1:M4,ROW()-10)とします
 (YS)

できました〜♪ありがとうございますー☆(nana7)


 こんにちは。

 このように区間が不規則に区切られて、切り下げを行う場合には、
便利に使用できると思っています。

    A  B
1  8  5
2  18  10
3  28  20
4  56  35
5 154 100
     ↑	
 =IF(COUNT(A1),LOOKUP(A1,{0,5,10,20,35,60,80,100}),"")	

 (UPUP)

 ほー、面白い使い方ですね。φ(..)メモメモ(YS)

 nana7さん、ちょっと気になったので横から失礼します。
 >1行目に 4月 5月、、と3月まで行方向に並んでいて
 と書かれていますが、
 LOOKUP関数は、検索範囲(配列)が昇順になっている事が条件になっていますので、
 指定月が1月・2月・3月の場合は、#N/Aが返りませんか?
 YSさんの書かれた方法1の =HLOOKUP($B$1,Sheet1!$A$1:M4,ROW()) を
 =HLOOKUP($B$1,Sheet1!$A$1:M4,ROW(),FALSE) として使われる方が良いのでは。(sin)
 確かめてみましたが、10月以降で#N/Aが返りました。

ありがとうございます、お二人とも、、、、かんぺきっす!!♪大感謝です☆


コメント返信:

[ 一覧(最新更新順) ]


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