「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:1
総数:2444
現在:7


VLOOKUP関数が正常な値を返さない。

ページOpenOffice.org FAQの登録ページ
投稿者new_OOo3
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2009-08-10 19:49:28 (月)
OSWindowsXP
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

お世話になっております。

Calcの表計算にてVLOOKUP関数を用いると#N/Aが返ってきます。(添付file参照願います) 文法的には何度も見直したので間違いは無いと思います。

不具合点・気付き点がありましたら宜しくご意見を頂けます様お願いします。

宜しくご回答頂けます様お願いします。


検索列は先頭列

gorodoku (2009-08-10 22:45:13 (月))

添付ファイル拝見しました。


vlookupの検索列は指定範囲の先頭列です。この添付ファイルの場合、[A],[B],[C]と入っているA列です。

第1パラメータの検索値はこの列から値を探すので、これに[1]という値が指定されていると、そのような値が検索列に存在しないので関数はエラー[#N/A]を返してしまうのです。


第3パラメータは結果を返したい列を指定します。添付ファイルの場合[1]を指定していますので検索列と同じ列を指定したことになります。

これだと検索値が存在した場合、検索値そのものを返すことになります。よって第3パラメータには検索範囲の2列目以降を指定するのが一般的な使い方かと思います。


添付ファイルの通りセルの値が次のように入力されているとします。

      A        B        C        D   
1
2     A        1     3000        3
3     B      100       10       40
4     C      400        5       50
5
6
7(関数入力)

A7セルに「=VLOOKUP("A";A2:D4;3;0)」と関数が入力されている場合、指定範囲の先頭列はA2,A3,A4セルです。

A2セルに文字列"A"がありこれが一致するので、VLOOKUP関数はこの行A2,B2,C2,D2から結果を返します。

第3パラメータで第3列を指定しているのでこのなかからC2の値を返します。

よって結果的にA7セルには数値「3000」が返されます。

分かりました。

new_OOo3 (2009-08-11 01:32:45 (火))

gorodoku 様

ご回答ありがとうございます。
マクロの感覚でSheet関数を見ていて、Excel時代に多用したVlook関数の使い方を忘れて(勘違い)していました。

補足

gorodoku (2009-08-11 08:29:52 (火))

すみません、書き忘れていたので一応補足です。ご存知かとは思いますが念のため。

上記の回答はVLOOKUP関数の第4パラメータに0またはfalseを指定した場合の挙動です。

1またはtrueを指定した場合は、検索列内で検索値以下(「未満」では無く「以下」。よって完全一致する場合はその行)の最大値となる行の値を返します。
このとき検索範囲のデータは検索列で昇順となるように並べ替えておく必要があります。

ページ番号を変更しました

M.Kamataki (2009-08-27 16:43:06 (木))

faq/5/21にページ番号を変えました。faq/5/3をご覧ください。

お名前:
題名:


添付ファイル: fileError.ods 631件 [詳細]