ID登録せずに、ニックネームで質問できる♪教えて!gooアプリ

 エクセル2000でVLOOKUP関数のことで教えてください。
 利用日6桁、室名を2桁、時間帯を1桁、計9桁の検索値を持った施設利用状況一覧表をつくります。そして、この表をもとに毎日の利用一覧表もつくれるファイルづくりを考えています。
 さて、この施設利用状況一覧表には飛番号が多く、VLOOKUP関数で検索をかけた場合、飛番号分には「#N/A」が返ってくることがわかったのですが、これを「0」(数として認識して欲しい)にする方法がないでしょうか。宜しくご教示の程お願いします。

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

A 回答 (3件)

=IF(ISERROR(VLOOKUP(A1,$H$1:$I$30,2,FALSE)),0,VLOOKUP(A1,$H$1:$I$30,2,FALSE))


でも0に出来ます。0でも何でもセットできるということです。
見つからなかったケースを必ず考えておかないといけないので、VLOOKUPを使う人は、すぐこの関数の組み合わせを勉強(必要とし)ます。
また表(上例ではH列に)見つからないもの(行)を見つけるためにも上記の式を積極的な目的に使うこともあります。式に2度同じVLOOKUP関数が出てくるが、略記する方法をいつも考えているが、その方法は無いようだ。マイクロソフトよ、何とかしてほしい。
    • good
    • 13
この回答へのお礼

ご教示有り難うございます。3人の方から簡潔明瞭なご教示をいただきただただお礼を申し上げます。最近体調が悪く、ひょっとしたらまもなく長期療養になる心配を抱えており、職務分担替えにより手がけている業務の合理化に一つの光明を見ることが出来た思いです。何方様も今後とも宜しくお願いします。

お礼日時:2009/04/21 19:11

一例です。


=IF(COUNTIF(検索範囲,検索値),VLOOKUP(式),0)
先ず検索値をチェックして、有ればVLOOKUP関数を実行結果、無ければ「0」を戻します。
    • good
    • 18
この回答へのお礼

ご教示有り難うございます。簡単な式の組み合わせのようですが実に意味深いような感じがします。早速試してみます。しっかり勉強してみます。これからも宜しくお願いします。

お礼日時:2009/04/21 19:06

一例です。


ISNA関数で「#NA」エラーを検知できますからあとはIF文ですね。

=IF(ISNA(VLOOKUP(A1,$H$1:$I$30,2,FALSE)),0,VLOOKUP(A1,$H$1:$I$30,2,FALSE))
    • good
    • 8
この回答へのお礼

ご教示有り難うございます。早速試してみます。でも、私如きではお示しいただいた式を理解するのに相当な時間がかかりそうです。しっかり勉強してみます。これからも宜しくお願いします。

お礼日時:2009/04/21 19:02

この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エクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセル関数 もしエラーなら0にする

エクセル関数 もしエラーなら0にする

=SUM(AR3:AV12)/COUNTA(AR3:AV12)
の関数にもしエラーになったら0を返す関数をプラスしたいです。

教えて下さい。

Aベストアンサー

以下の式でどうでしょうか。
=IF(COUNTA(AR32:AV32)=0,0,SUM(AR3:AV12)/COUNTA(AR3:AV12))

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

QexcelのVLOOKUPで検索値を2つにできますか?

excelのVLOOKUPで検索値を2つにしたいです
私の知っているVLOOKだと下記のことは対応できます
例えば、A列に会社名、B列に住所、C列に電話番号 とあった場合
「住所が検索値と同一なら電話番号を表示しなさい」という指示は出せます

そこで質問です
「会社名と住所が検索値と同一なら電話番号を表示しなさい」
というような、複数の検索値を持つ事はできないのでしょうか?

参考になるURLなどでも結構ですので、ご存知の方よろしくお願いいたします

Aベストアンサー

元の表をA列に会社名、B列に住所、C列に「=A2&B2」、D列に電話番号のようにして
=VLOOKUP(会社名&住所,$D$2:$C$100,2,FALSE)
のようにすれば可能です。

QSUM関数の範囲に#N/Aがあっても合計してくれる計算式

A列に氏名、B列に金額(計算式が入っている)があります。
B列の最終行に合計金額を出したいのですが、
B列に、#N/Aとなるセルがあり、
SUM関数を使うと結果がエラーになります。
なんとかエラー値のセルは無視して合計金額を出す計算式は
ないでしょうか。
よろしく御指導下さい。

Aベストアンサー

=SUMIF(A1:A10,"<>#N/A")
または、
=SUMIF(A1:A10,"<"&10^10)

★数値にマイナスが無ければ
=SUMIF(A1:A10,">0")

Qエクセル 0や空白のセルをグラフに反映させない方法

以下の点でどなたかお教えください。

H18.1~H20.12までの毎月の売上高を表に記載し、その表を元にグラフを作成しています。グラフに反映させる表の範囲はH18.1~H20.12の全てです。
そのためまだ経過していない期間のセルが空白になり、そこがグラフに反映され見づらくなります。
データを入力する都度グラフの範囲を変更すればいいのですが、うまく算式や設定等で空白や0円となっているセルをグラフに反映させない方法はありますか?

お手数ですが、よろしくお願いいたします。

Aベストアンサー

売上高のセルは数式で求められているのですよね?
それなら
=IF(現在の数式=0,NA(),現在の数式)
としてみてください。
つまり、0の場合はN/Aエラーにしてしまうんです。N/Aエラーはグラフに反映されません。

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む


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

人気Q&Aランキング