新生活を充実させるための「こだわり」を取材!!

お世話になります。
こんな数式ありますか?というご質問です。
excel2013を使用しています。バージョンアップの予定があるため今後も使える数式だと大変ありがたいです。

=IF(VLOOKUP(AH2,$A:$O,9,0)="","",VLOOKUP(AH2,$A:$O,9,0))

上のような数式があるのですが、if関数を使った場合にtrueだったらそのままvlookupの計算をしてほしいのですが、上のようにif関数だとvlookupをもう一度書かなければならず読み解いたり直す場合に2カ所直すのが大変で、なにか他に適切な数式があるのでは…?と思うのですがご教授頂きたいです。

trueの条件は空白の場合とは限らず、数字や文字列の場合もあるのですがそんなに対応できる数式などあるのでしょうか?

よろしくお願い致します。

質問者からの補足コメント

  • さっそくのご回答ありがとうございます。
    わかりにくくて申し訳ないです。。

    vlookupの参照先に値が入っていたりいなかったり数字だったり文字列だったりでして…。

    値が入ってないと0が返されるのでこの質問でした。
    なので&””で空白をくっつけてしまうと、数字が返されたときに仰るように文字列となるため、そのあとの別の数式で参照しようとすると今度は数字に直す必要が出てきてしまいただの参照にならないかなと思ってたのですが、文章だと伝わりにくいですね…。

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/09/02 15:09
教えて!goo グレード

A 回答 (7件)

お書きの内容は参照先が空欄だと0を返すのが嫌ということですよね?


返り値が文字列であることが前提なら

=VLOOKUP(・・・・)&””

とすることで、0でなく空欄が返ります。

ただ、元のデータが数値の場合は文字列の数字になってしまうのでその後の計算に影響が出るなら使えません。
その場合は、今のような書き方をするしかないでしょう。

>trueの条件は空白の場合とは限らず、数字や文字列の場合もあるのですが

上記の意味がちょっとわかりませんが、場合分けしないといけないならその通りに式を作るしかないのでは?
対応したいという具体例を挙げてもらわないと何とも言えません。
この回答への補足あり
    • good
    • 0

こんばんは



既に回答は出そろっていると思いますけれど・・・

どうしても、2回関数式を書くのが嫌ならば、ユーザー定義関数を利用するという方法もあります。
単純に、VLOOKUP関数と同じ処理をする関数ですが、参照先が空白の場合に空白を返すという点だけが異なるものを作成しておいて、そちらを利用するという案です。

通常の関数でできることなので、わざわざユーザー定義関数にするほどのことも無いとは思いますけれど、関数の記述をどうしても簡単にしたいということであるなら、ひとつの解決方法としてありかも知れません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ユーザー定義関数なんてあるんですね…。
知らなかったのですが、違うところで使えそうです。
これも勉強になります。
ご回答ありがとうございます。

お礼日時:2021/09/02 22:33

ご質問の趣旨のとおり、今のままでよいと思います。


又は、単に、=VLOOKUP(AH2,$A:$O,9,0)とし、セルの書式で#,###;-#,###;#;@ などとすれば、0が表示されなくなります。
N/Aエラーの時も””にするなら、長いですが、
=IF(ISERROR(VLOOKUP(AH2,$A:$O,9,0)),"",IF(VLOOKUP(AH2,$A:$O,9,0)="","",VLOOKUP(AH2,$A:$O,9,0)))で。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
下の方へも回答しておりますが、書式でやってみました。
この計算結果をさらにテキストボックスに=でセル参照表示させていたので書式ではダメでした…。
でも計算だけなら条件付書式とかもあるかもと気づかせて頂きました。数式だけで完結しなくてもよいかもというのは気づかなかったので勉強になりました。
ありがとうございます。

お礼日時:2021/09/02 22:31

数式が長く複雑になる場合は、作業用のセル(列)を設けておくと良いでしょう。



AJ2セルに
 =VLOOKUP(AH2,$A:$O,9,0)
と入力して
 =IF(AJ2="","",AJ2)
とすればスッキリする。

・・・

というか、”0” を表示したくないのであれば「セルの書式設定」のユーザー書式で
 G/標準;-G/標準;;
を指定すれば良いと思う。
 プラスの値;マイナスの値;ゼロ値;文字列
という形で指定するので、プラスの値とマイナスの値以外は空欄に見えるようになります。
文字列は文字列で表示したいという事なら、
 G/標準;-G/標準;
でOK。
文字列は未指定なのでそのまま表示されます。

ただし!!!!
何かエラーが発生したときはその原因調査の支障になることがありますので注意してください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
書式でやってみました。
この計算結果をさらにテキストボックスに=でセル参照表示させていたので書式ではダメでした…。
でも計算だけなら条件付書式とかもあるかもと気づかせて頂きました。
ありがとうございます。

お礼日時:2021/09/02 22:29

or関数を使えば、複数の条件の中から当てはまるものがあればtrueにできます。

    • good
    • 0
この回答へのお礼

何度もご回答ありがとうございます。
trueにはifでもできるのですがそのあとに計算なり参照なりしてほしくて…わかりにくくて申し訳ありません。。

お礼日時:2021/09/02 22:12

この式は、単に、


=VLOOKUP(AH2,$A:$O,9,0)
で良いはずです。

検索先のセル内容の種別に限らず、セル内容が返されます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
空白セルだと0が返ってしまって困っていました。

わかりにくくて申し訳ないです…。

お礼日時:2021/09/02 22:09

vlookupだけだと駄目ですか?


エラーになるときに空白にしたいって事だったら、IFERROR関数を使うと良いと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
1さんのに捕捉してますが、参照先の表に空白セルがあり、0が返ってきてしまうのでどうしようかなといったところでした。

参照先はエラーにならないので、iferrorは使えませんでした…。

お礼日時:2021/09/02 22:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

教えて!goo グレード

人気Q&Aランキング