• ベストアンサー

MID関数で、「0」を一文字目として認識させたい

Excel2002で、住所録から封筒を印刷するファイルを作りました。 住所録シートの7桁の郵便番号セルから一文字ずつ取出して 印刷シートの各セルに収めるよう下記の関数を入れています。 =MID(VALUE(VLOOKUP("●",住所録データ範囲,5,TRUE)),1,1) 通常は問題無いのですが、「0」から始まる郵便番号の時は MID関数が「0」を1文字目と認識してくれず、2文字目が 1番先頭のセルに入ってしまいます。 (住所録シートに入っている郵便番号は「'」で文字列認識させています) 何か良い解決方法はありますでしょうか? 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

MID関数が「0」を1文字目と認識してくれないなんてことはないはずです。 そうでなくてVALUEで数値化したから先頭の0が消えただけなのでは? それから"●"は具体的には何かな?それがわからないからVLOOKUPでなんで引数にTRUEを指定しているのかわかりません。

irohani123
質問者

お礼

VALUEを外したらうまくいきました! 稚拙なマクロで、住所録シートで印刷したい住所行のA列をダブルクリックすると「●」が入り それが印刷シートに反映される仕組みにしています。 検索の型は、どこかで「省略すればTRUEになる」と聞いたことがあったので 特に深く考えずに入れていました。 文字列や完全一致の場合は「FALSE」にすべきなんですね。勉強不足ですみません。 もっと良いやり方があるかもしれませんが、なにぶんこんな調子で 手探り状態でやっているもので…。 助かりました。有難うございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.2

VALUEをやめればいいだけです。 あと、VLOOKUPの数にTRUEを指定していますが、 何か特別の意味があります? FALSEではだめ?

irohani123
質問者

お礼

VALUEを外したらうまくいきました! 検索の型は、どこかで「省略すればTRUEになる」と聞いたことがあったので 特に深く考えずに入れていました。 文字列や完全一致の場合は「FALSE」にすべきなんですね。勉強不足ですみません。 もっと良いやり方があるかもしれませんが、なにぶんこんな調子で 手探り状態でやっているもので…。 助かりました。有難うございました。

すると、全ての回答が全文表示されます。

関連するQ&A