Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
VLookup関数で#N/Aが出たときにエラー処理を追加するのにいい方法あります?
投稿日時: 18/11/09 21:06:41
投稿者: mattuwan44

いつもすみません。
 
とりあえず、ちゃんと数式が設定出来ているか仮で、データを入れておいて、
Vlookup関数を仕込んだのですが、
検索値のセルをいざ空白にすると#N/Aが出ますよね?
 
VLookup関数で#N/Aが出たときにエラー処理を一括で追加するのにいい方法ありますか?
Vlookup関数は列番がオートフィルでは変わらないので、何か簡単にIsError関数をかませられたら、
いいなと思うのですが。。。
 
よろしくお願いします。

回答
投稿日時: 18/11/09 21:24:21
投稿者: Mike

mattuwan44 さんの引用:
何か簡単にIsError関数をかませられたら、
いいなと思うのですが。。。
噛ませる?
=IFERROR(VLOOKUP(search,range,n),"None!")
とか?

投稿日時: 18/11/10 10:09:16
投稿者: mattuwan44

Mike さんの引用:
mattuwan44 さんの引用:
何か簡単にIsError関数をかませられたら、
いいなと思うのですが。。。
噛ませる?
=IFERROR(VLOOKUP(search,range,n),"None!")
とか?

 
回答ありがとうございます。
そういうことを大量のセルにしたいので、
簡単に追記出来る方はあればなぁーと思った次第です。
 
何か方法はないのでしょうか。。。

回答
投稿日時: 18/11/10 10:18:19
投稿者: WinArrow
投稿者のウェブサイトに移動

現愛入力してある数式を掲示してみましょう
もしかしたら置換で対応できるかも?

回答
投稿日時: 18/11/10 10:49:11
投稿者: コナミ

>Vlookup関数は列番がオートフィルでは変わらないので
 
連番で列番号を設定しているならCOLUMN関数で列番号を出すようにすれば1つの式を変更して後はフィルコピーでできますけど。

投稿日時: 18/11/10 11:44:03
投稿者: mattuwan44

WinArrow さんの引用:
現愛入力してある数式を掲示してみましょう
もしかしたら置換で対応できるかも?

 
現状は、
 
=VLOOKUP($A5,テーブル2,2)
 
となっております。
 
=IF($A5="","",(VLOOKUP($A5,テーブル2,2)))
 
このように、したいと思いますが。
置換でいけますかね。後ろの括弧を付け足すようにする方法を思いつきません。^^;
 
 
引用:
COLUMN関数で列番号を出すようにすれば1つの式を変更して後はフィルコピーでできますけど。

なるほど^^
時々歯抜けですが、列数が多いので助かります。
 
引き続き案があればお教えくださいませ。

回答
投稿日時: 18/11/10 11:47:58
投稿者: Mike

mattuwan44 さんの引用:
…を大量のセルにしたいので、
簡単に追記出来る方はあればなぁーと思った次第です。
 
何か方法はないのでしょうか。。。
[条件付き書式]でフォント色を白にかませたら

回答
投稿日時: 18/11/10 12:21:18
投稿者: チオチモリン

mattuwan44 さんの引用:

検索値のセルをいざ空白にすると#N/Aが出ますよね?

 
私は、そういう場合は、#N/Aを表示させないようにデータ側に「0」を追加します。
尚 2列目の値はお好みで。
 
(私は、[']をよく使います。#N/Aは表示されるべき場合は表示してほしいので)

回答
投稿日時: 18/11/10 14:54:51
投稿者: WinArrow
投稿者のウェブサイトに移動

>置換
では、無理のようです。
  
この数式がどこの列のセルにはいっているかわかりませんが、
 当該列の先頭セルの数式を
=IF($A5="","",VLOOKUP($A5,テーブル2,COLUMN(B$1),FALSE))
のように変更し
右へ、下へフィルドラッグすれば、いかがでしょう?
  
   
VLOOKUP関数の第4引数が抜けていますが?
意図して省略していますか?

回答
投稿日時: 18/11/10 18:36:59
投稿者: コナミ

>後ろの括弧を付け足すようにする方法を思いつきません。
 
お書きのようにしたいなら
 
検索する文字列に「)」
置換後に「)))」
 
じゃできないですか?
今PC手元にないので試してないんですが。
できなかったらすみません。

回答
投稿日時: 18/11/10 20:23:45
投稿者: WinArrow
投稿者のウェブサイトに移動

コナミ さんへ
 
単なる文字列でしたら、
ご提示の方法で、可能ですが、
数式なので、単純に")"(カッコは1つでも2つでもおなじ)を追加すると、
数式として成り立たなくなるので、単純置換は無理です。

回答
投稿日時: 18/11/10 21:25:00
投稿者: チオチモリン

mattuwan44 さんの引用:
=VLOOKUP($A5,テーブル2,2)
=IF($A5="","",(VLOOKUP($A5,テーブル2,2)))
このように、したいと思いますが。
置換でいけますかね。後ろの括弧を付け足すようにする方法を思いつきません。^^;

 
何故 「後ろの括弧を付け足す」ような必要があるんでしょうか?
 
=VLOOKUP($A5,テーブル2,2)

=IF($A5="","",(VLOOKUP($A5,テーブル2,2)))
に置換すればよいだけのように思えますが。
 
大量にあるとだけ言われても、サンプルが一つでは状況がわかりかねます。
=VLOOKUP($A5,テーブル2,2)
を下にフィルしたような数式ですか?

回答
投稿日時: 18/11/12 14:12:55
投稿者: んなっと

コナミさんのCOLUMN関数を利用する回答で解決ですね。
不要かとは思いますが、複雑にネストした式が広範囲にある場合の方法を書きます。
[数式の表示]でほかのアプリにコピペすれば数式が編集できることを利用しています。
 
=VLOOKUP($A5,テーブル2,IF(ISNUMBER($A5),2,4),FALSE)
などといった式の外側に、さらにIFERROR( )を追加して
=IFERROR(VLOOKUP($A5,テーブル2,IF(ISNUMBER($A5),2,4),FALSE),"")
としたい場合の例です。
 
1.
 数式があるセル範囲選択
→[数式]
→[数式の表示]クリック
→コピー
2.
 ワードを起動して、[形式を選択して貼り付け][テキスト]
→Ctrl+Homeキー同時押しで先頭に戻る
→[置換]
 オプション ワイルドカードを使用する にチェック
 検索する文字列:
=(*)([^t^13])
 置換後の文字列:
=IFERROR(\1,"")\2
 すべて置換
→すべて選択してコピー
3.
 Excelに戻って[数式の表示]クリック(数式非表示に戻る)
→[形式を選択して貼り付け][テキスト]

回答
投稿日時: 18/11/12 14:26:18
投稿者: んなっと

Excel2013およびそれ以降であれば、
 
="=IFERROR("&REPLACE(FORMULATEXT(B5),1,1,)&","""")"
 右方向・→下方向・↓
→コピー
→元の数式範囲に [形式を選択して貼り付け] [値]
→[置換]
 検索する文字列:
=
 置換後の文字列:
=

投稿日時: 18/11/13 12:33:50
投稿者: mattuwan44

回答ありがとうございます。
 
やはりそのままでは、数式を置き換えることは出来ないようですね。
他のソフトで文字列を編集するのはありかも知れませんが。
条件付き書式案もありですね^^
あと
>#N/Aは表示されるべき場合は表示してほしい
も大変参考になりました^^
 
列番をColumns関数で取得する式にして、
対応しました。
 
=IF($A6="","",(VLOOKUP($A6,テーブル2,COLUMN(C4))))
 
 
ありがとうございました。