• ベストアンサー

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

  • MID関数について

    一桁から八桁までの任意の数字を1セルごとに分けたいのですが、MID関数では左から取り出すため桁数が変化すると使えません。 一桁目にMID(A1,1,1)から八桁目にMID(A1、8,1)を入れると1234が4321と逆になってしまいます。 12でも12345678と桁が違っても1セルごとにわけることはできないでしょうか

  • ExcelでVLOOKUPの引数にMID関数を使う?

    ・Sheet1のA1セルの数値をVLOOKUPの検索値にする ・Sheet1のA1セルの数値が6桁あって、左から2・3・4番目の数値を使う ・Sheet2にVLOOKUPの「範囲」になる表がある 以上の条件のとき =VLOOKUP(MID(A1,2,3),Sheet2!$表のセル範囲$,列,型) という数式を作ったのですが、「NAME#」エラーがでました。 正しい数式を教えていただければ助かります。 よろしくお願いします。

  • エクセル MID関数

    MID関数で表示した文字列が、数字として認識されません。 MID関数で表示された数字が10とします。セルはA1とします。 その後、IF式で =if(A1<5,10,0) とすると、結果は0になるはずなのに、常に真の値、10になってしまいます。 原因は、MID関数で表示された数字が文字列として認識しているからと考えられますが、対象方法をご存知の方がおりましたら教えてください。 よろしくお願いします。

  • エクセルで、いつのセルに入っている7桁の数字をそれぞれ1つづつ、7つのセルに分ける関数はありますか??

    こんばんは。大変こちらでお世話になっています。 エクセルのデーターをもとに、宛名印刷をしたくていろいろ試みているのですが、会社規定の封筒の郵便番号枠に、美しく数字を印字することがどうしてもできません。 こうなったら、郵便番号をばらして、1字づつ印刷しようかと思っています。 そこで教えて頂きたいのですが、今1つのセルに入っている郵便番号7桁をそれぞれ1桁づつ、7つのセルに分けたいのです。これは何か関数を使ってできるのでしょうか? どうぞ教えてください。よろしくお願いします。

  • VLOOKUP関数とCONCATENATE関数で封筒に宛名印刷

    エクセルで、A列には郵便番号、B列に住所、C列は会社名、D列に名前が入力された表があります。 ひとつのセルを検索ワード入力専門のセルとし、そこに会社名を入れることで、VLOOKUP関数とCONCATENATE関数を使って封筒の宛名印刷をしようと思いますが、式の組み方がよくわかりません。 ご助言下さい。 マクロはわかりません。 宛名印刷ソフトを使ったりせず、会社の封筒に体裁を合わせて印刷しようと思いますので、エクセルで宛名印刷したいです。

  • EXCEL MID関数の文字数について!

    セルA1 12×1240×2280 セルA2 3×1240×2280 セルA3 5.5×1240×2280 ↑こんな風にセルの中に数字が入っているのでMID関数で セルA1 =MID(A1,1,2)→12 セルA2 =MID(A2,1,1)→3 セルA3 =MID(A3,1,3)→5.5 と答えが出ます。でもA列の桁数によりMID関数の文字数を変えなければなりません。 一気に出せる方法はないでしょうか?? おわかりの方教えてくださーい!

  • excelで文字列を検索する関数を教えてください。

    いつもお世話になります。 エクセルの関数で、シートAのセルA1に入っている文字列をシートBのC列から探し出し、同じ文字列があればTrueをなければFalseを返す関数を教えてください。 わからないながらも色々調べてみたのですが、検索にはVLOOKUPがよく使われているようですが、シートBのC列は、データの並べ替えができないので、VLOOKUPは、使えないのです。 よろしくお願いします。

  • エクセルの関数で教えて下さい。

    今、エクセルで宅急便の送り状に印字する物を作成しております。 レイアウトシ-トは出来まして別シ-トからVLOOKUP関数を使用 しましてデ-タをレイアウトに呼び出そうとしまして作成しているのですが 別シ-ト(LISTというシ-ト名にしてあります)の1つのセルに郵便番号 が7桁入っております。 その郵便番号をレイアウトに沿って入力したいのですがいろいろと調べて みたのですが出来ないでおります。 他の住所や電話番号、得意先名とかはVLOOKUP関数だけで出来た のですがどうしても7桁ある文字列の中の任意の桁数を取り出す事が 分からずにおります。ご教授下さい。宜しくお願い致します。 例えば住所がLISTというシ-トのD列に入っている場合で得意先コ-ド がレイアウトのあるシ-トと同じシ-トのC20に入力してあると仮定しますと =IF(C20="","",VLOOKUP(C20,LIST!$A$1:$I$50,4,FALSE)) という関数で住所がレイアウト欄に入るのですが。 どうしても出来ないでおります。 最悪郵便番号を7つのセルに分割して入力しなおしてやった方が良いのか と思っておりますがご存知の方がいらっしゃいましたら是非教えて頂きたく 質問させて頂きました。 OSはXP SP=3  EXCEL2003を使用しております。

  • エクセルで、MID関数で抽出した文字を独立させたい

    エクセル初心者のため、お見苦しい文章で申し訳ありません。 WORDに入力されたアンケート結果をEXCELに移した際に、 例えば1つのセルにある「A:50% B:25% C:25%」という文字列を、 MID関数を使ってそれぞれ別のセルに抽出しました。 (それぞれ、"=MID(A2,3,3)"、"=MID(A2,10,3)"、 "=MID(A2,17,3)"という感じです) 設問がいくつもあるので、 その関数を十字でコピーしたほうが楽かと思いまして・・・ ところがそもそもグラフを作りたくてエクセルに移したのですが、 「50%」というのはただの関数の結果であって、 数字どおりのグラフが作れないと気づきました。 これを、「50%」という文字列だと 認識させてグラフを作る方法は何かあるでしょうか? それともやっぱりめんどくさがらずに、 1から打ち込んだほうが早いのでしょうか・・。 わかりづらい質問で申し訳ありません。 よろしくお願いいたします。

  • 抽出する文字数が異なる場合

    Access2003 クエリを作成中です。 「アドレス」テーブルの「電話番号」フィールドの編集作業をしていますが、市外局番のみを取り出す、つまり、-(ハイフン)より、前を取り出したいです。 郵便番号の場合、3ケタ-4ケタの為、Mid関数を用いることができたのですが、電話番号の場合、それが出来ずに困っています。 03-1234-5678 090-1234-5678 0000-1234-5678 などがあり、郵便番号のように Mid(アドレス!郵便番号,1,3) AS 郵便3ケタ Mid関数を使って、○文字、抽出することができません。 電話番号は、テーブル「アドレス」/フィールド「電話番号」です。

専門家に質問してみよう