素人がExcelVBAによる「一人働き方改革」に挑むブログスマートフォン用の表示で見る素人がExcelVBAによる「一人働き方改革」に挑むブログExcelVBAネタです。2017-10-08差込印刷のデータソースにおけるVLOOKUP関数の使用――(2)Excel一般(ワークシート関数など)差込印刷のデータソースにおけるVLOOKUP関数akashi-keirin.hatenablog.comこの続き。問題は戻り値の「0」(ゼロ)差込印刷のデータソースの表でVLOOKUP関数を使うと、検索値によって差し込みたいデータが決まっているようなときは非常に都合が良い。前回も述べたように、空白を返したいときでも、戻り値は「0」(ゼロ)になってしまうため、差し込みフィールドに「0」が差し込まれてしまう。前回は、「0」を表示させないためにフィールドコードでIF文を用いたが、改段落が残ってしまうため、非常にぶさいくな仕上がりになってしまう。VLOOKUP関数の戻り値「0」を「""」に置き換えるならば、と戻り値が「0」のときにそれを「""」(空白文字列)に置き換えることを考える。IF関数でVLOOKUP関数の戻り値が「0」の場合に「""」にするようにすれば良い。ただでさえ引数部分がクソ長ったらしくなるVLOOKUP関数をIF関数でネストするわけだから、ちょっとした下ごしらえは必要。表引きの元になる表に、こんなふうに、「競輪場一覧」と名前を付けた。これでVLOOKUP関数の第2引数はぐっと簡単になる。)あまりにも長すぎるのでインデントしてみたけど、大して可読性は上がらないな。要するに、VLOOKUP($A2,競輪場一覧,COLUMN(Sheet1!B$1),FALSE)の戻り値が「0」だったら、""を表示せよ、と言っているだけなんだけれど。「0」が消えて空白セルになった。差込印刷の結果を見てみる。おお、バッチリじゃん!おわりに特にVBAの出番もなく解決してしまったけれど、仮にIFERRORのネストを外したとしても結構めんどくさい数式記述が必要なのがイマイチ。TANAKAさんのコチラのページに、VLOOKUP関数の結果が空欄だったとき、0ではなく空欄を返すようにするには、=VLOOKUP(D2,A2:B5,2,FALSE)&""と、末尾に「&""」をつけます。「&」は文字列を結合する演算子で、空欄である「""」を結合することによって、0を空欄に変換できます。!くそう、めちゃくちゃカンタンじゃねーかよ!やっぱり、達人の皆さんはすげえなあ。»プロフィールid:akashi_keirinExcelVBAネタです。SyntaxHighlighter.all();注目記事はてなブログをはじめよう!akashi_keirinさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。