エクセルで宅急便送り状に印字する方法

このQ&Aのポイント
  • エクセルで宅急便の送り状に印字するために、VLLOKUP関数を使用して別シートのデータを呼び出す方法を教えてください。また、郵便番号をレイアウトに沿って入力したいが、方法が分からないとのことです。
  • 他の住所や電話番号、得意先名はVLLOKUP関数を使用して作成できたが、7桁の郵便番号のうち任意の桁数を取り出す方法が分からないとのことです。どのようにすれば良いでしょうか。
  • 最終的には、7桁の郵便番号を分割して入力するか、別の方法でレイアウトに入力したいと考えています。しかし、具体的な方法がわからないため、助言をいただきたいです。
回答を見る
  • ベストアンサー

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

今、エクセルで宅急便の送り状に印字する物を作成しております。 レイアウトシ-トは出来まして別シ-トから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を使用しております。

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

  • ベストアンサー
回答No.5

回答者1さんの言う通りに、 MID関数を使えば文字列中の文字を抽出できます。 1桁目 =IF(D20="","",MID(VLOOKUP(C20,LIST!$A$1:$I$50,4,FALSE),1,1)) 2桁目 =IF(D20="","",MID(VLOOKUP(C20,LIST!$A$1:$I$50,4,FALSE),2,1)) 3桁目 =IF(D20="","",MID(VLOOKUP(C20,LIST!$A$1:$I$50,4,FALSE),3,1)) のようにされて抽出されてはどうですか?

shin-45
質問者

お礼

ご回答ありがとうございました。 回答NO.1様に付け加えて頂きまして実際の 関数で示して頂きましたが駄目でした。 入力した式は正しくありませんとエラ-表示される のですがなぜなのでしょうか? 申し訳ありません。

shin-45
質問者

補足

すみませんでした。再度関数式を入力したら出来ました。 本当に助かりました。この度は本当にありがとうござい ました。感謝致します。

その他の回答 (6)

回答No.7

考え方は、No.5さんの通りでOKだと思います。 1桁目 =IF(C$20="","",MID(VLOOKUP(C$20,LIST!$A$1:$I$50,2,FALSE),1,1)) 2桁目 =IF(C$20="","",MID(VLOOKUP(C$20,LIST!$A$1:$I$50,2,FALSE),2,1)) ・最初のD20→C$20 (C20に得意先コード入力の場合) ・FALSEの左が、4→2 (B列に郵便番号が入っているとの事なので) が修正されるくらいです。 郵便番号が数値形式ではNGかと思いましたが、とりあえずOKみたいです。 (2007の場合。2003でNGならば、セルの書式設定で文字列へ。) あとは、郵便番号の行はセル幅などで調整。 住所の行は、セルの結合などで調整するしかないでしょう。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

回答No2です。 A2セルに1234567とある数値を例えばB2セルからG2セルに1個づつ並べるのでしたら次の式をB2セルに入力してG2セルまでドラッグコピーすればよいでしょう。 =MID($A2,COLUMN(A1),1) 数字の間隔はセル幅を適当に変えることで対応できますね。

shin-45
質問者

補足

再度のご回答誠にありがとうございます。 送り状というシ-トに郵便番号を入れるレイアウトのセルが7つ あります。 別シ-ト(LIST)というシ-トにA列に得意先コ-ド、B列 に郵便番号が数値7桁で入っております。 送り状シ-ト(送り状のレイアウトがあるシ-トです)の例えば B20に得意先コ-ドを入力するとLISTシ-トの郵便番号を 7つのセルに順番に表示させたいという事なのです。 説明分が稚拙で分かりにくく申し訳ございません。

  • m_and_dmp
  • ベストアンサー率54% (974/1797)
回答No.4

どのようにダメなのかわからないので的確なアドバイスは難しいです。 (1)VLOOKUP 関数で7桁の郵便番号をレイアウトシートに持ってくることができないのか、 (2)持ってくることができるが、レイアウト枠の中にぴったり入れることができないのか、 (3)なぜ、任意の桁数を取り出さなければならないのか (2)の場合は、7桁の数字をひとつのセルに入力した場合、数字の間隔を調節してレイアウト枠にぴったりになるようにすることは簡単にはできません。 表示形式を 000” ”0000 にすると、123 4567 と表示されます。 0” ”0” ”0” ”0” ”0” ”0” ”0 にすると 1 2 3 4 5 6 7 と表示されます。  ” ” の中はスペースです。スペースの数を増やせば数字の間隔は広がります。 この表示形式とフォントのサイズをうまく利用してレイアウト枠の中にぴったり配置することができるかもしれません。 以下は私がやっている方法ですが、 レイアウト枠の上にレイアウト枠と同じくらいの大きさのテキストボックスを作成し、そのテキストボックスにセルの内容を表示させる方法があります。 レイアウトシートの、レイアウト枠に邪魔にならないところにVLOOKUPで郵便番号を持ってきておきます。そのセルを「セルA」とします。 おなじく、邪魔にならないところのもうひとつのセルを「セルB」とします。 セルB = JIS(セルA) として、数字を文字列に変換しておきます。 テキストボックスを作成したら、その中に文字を打ち込まずに、 アドレスバーに、=[セルBをマウスで参照] と打ち込むとセルBの内容がテキストボックスに表示されます。 テキストボックスの書式設定で、横位置を均等割り付けにします。 テキストボックスを郵便番号レイアウトボックスの上に持ってきて、横方向のサイズを調節すると、7桁の数字をレイアウト枠にぴったりと配置することができます。 調節が終わったらテキストボックスの枠線の色を「なし」にします。

shin-45
質問者

お礼

ご回答ありがとうございます。 (1)につきましては送り状用紙では郵便番号の枠が別々になっております ので7桁を全部に出すのはレイアウトに合わないのです。 (2)につきましたはその通りです。 (3)につきましてはなぜ任意って郵便番号を1つずつ所定の枠に納めない とだめなので。 テキストボックスではちょっと出来ないです。申し訳ございません。

回答No.3

=LEFT(A1,3) =RIGHT(A1,4) で、左3桁・右4桁に分離する方法ではダメ?

shin-45
質問者

お礼

ご回答ありがとうございます。 LEFT関数やRIGHT関数は存じております。 宅急便の送り状って郵便番号の枠が1つずつ分かれて いますのでその方法では無理なんです。すみません。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

住所がレアウトのシートに表示されるが郵便番号ができないといっていますが郵便番号は住所と同じセルになっているのでできないのか肝心のところがよくわかりません。LISTのシートでは住所と郵便番号が別々の列になっているのでしたら問題はないでしょうし、いったい郵便番号をどのようにしたいのか具体的に示していただけませんか?

shin-45
質問者

お礼

ご回答ありがとうございました。 郵便番号と住所等は当然ながら別々のセルに 納まっております。 例えばA2のセルに1234567と7桁の 数値が入っておりますので1つずつ選び目的 の場所に表示させたいのです。

  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

=MID(A1,1,1)  A1の1文字目から1文字 =MID(A1,2,1)  A1の2文字目から1文字 =MID(A1,3,1)  A1の3文字目から1文字 =MID(A1,4,1)  A1の4文字目から1文字 =MID(A1,5,1)  A1の5文字目から1文字

shin-45
質問者

お礼

早速のご回答誠にありがとうございます。 回答No.5の方の通りやってみましたが だめでした。

関連するQ&A

  • エクセル関数VLOOKUPで教えてください。 

    エクセル関数VLOOKUPで教えてください。  シ-ト1にA列から学籍番号・B列に氏名・C列に点数(数値)を記入してあります。 シ-ト2に順位表を作成しA列にLARGE関数を使用してシ-ト1から点数降順(昇順)に表示しました。シ-ト2のB列に学籍番号 C列に氏名 をVLOOKUP関数でシ-ト1から抽出したいのですが、点数が同点の場合に当該複数名を表示せず単一名になってしまいます。VBA・マクロを使用せずに関数のみで同一点数獲得者の氏名を個別個々に表示させる方法を教えてください。

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

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

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

  • 郵便番号入力について

    EXCEL2000のC列の各セルに住所が入力されています。 この住所の内容を元に9桁の郵便番号を隣のセル(B列)に簡単に入力するよい方法はありませんでしょうか? ひとつひとつ郵便番号簿で調べるのは大変なもので・・・。 7桁の郵便番号を入力して住所を入力する方法は分かるのですが逆はできるのでしょうか? よろしくお願いします。

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

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

  • Excelで住所録を作ってます。

    あるセルに郵便番号を入力したら隣のセルに住所が表示され(ここまではVLOOKUP関数で作りました)、かつ表示された住所の足りない部分を追加編集できるようにしたいのですが、そんな事は可能ですか?もし可能なら、どのようにしたら出来ますか?宜しくお願いします。

  • エクセル関数について

    いつもお世話になります。 ”管理”と”リスト”というシートがあります。 ”管理”シートは A1    B1    C1・・・・・ 番号   名前   住所・・・・ と、情報が管理してあります。 ”リスト”シートのB3に番号を入力するセルを作りB11に =IF($B$3="","",VLOOKUP($B$3,注文管理!$A$3:$AE$9880,31)) という関数を入れて、”管理”シートの該当セルに記入があるなら B11に返すようにしています。B11に答えが返った場合、D4に「★備考あり★」と返したいのですが、 =IF(B11>1,"★備考あり★",IF(B11<1,"")) の関数を使うと、もともとB11には関数が入っているのでずっと「★備考あり★」のままです。 これを、B11に答えが返ってきた時のみ「★備考あり★」とする関数はありますか?

  • VLOOKUP関数についての質問です。

    VLOOKUP関数についての質問です。 例えば、シート1に、 A列    B列  C列 番号  品物  送り先 1   ばなな スーパー 2   ミカン 学校 3   イチゴ ケーキ店  あるとします。 VLOOKUP関数を用いて、 シート2に A列    B列 送り先  品物 ・   ・ ・   ・ ・   ・ とそれぞれ入力したいとして、以下のセルも同様の式を使い入力しますが いちいち式を立てて入力していくと大変です。 セルにVLOOKUP関数をコピーして使うにはどうしたらいいですか?? お願いします。

  • 【エクセル2000】郵便番号を入力すると住所を表示するようにしたい(過去質問確認済)

    エクセル2000で郵便番号を入力すると住所を表示するようにしたいと考えています。 表示方法と現在の関数は次の通りです。 【入力シート】 A列:郵便番号入力セル B列:住所 全体(=C列&D列&E列) C列:住所 都道府県 (=VLOOKUP(A列,'データシート'!$A:$D,2,FALSE) D列:住所 市町村 (=VLOOKUP(A列,'データシート'!$A:$D,3,FALSE) E列:住所 番地以下 (=VLOOKUP(A列,'データシート'!$A:$D,4,FALSE) 【データシート】 A列:郵便番号 B列:住所 都道府県 C列:住所 市町村 D列:住所 番地以下 表示方法はこののやり方で問題がないのですが、 全国住所データが約12万件以上あるため、エクセルの列に入りきりません。 過去の質問を確認しましたが、希望の回答はありませんでした。 どうにかして検索データの量を12万件以上にすることは出来ませんか? シートを複数に分けるとか、VLOOKUP関数の検索列を複数に分けるなどでも結構です。 宜しくお願いします。

  • ExcelのMID,COLUMN関数について

    ExcelのMID,COLUMN関数について http://okwave.jp/qa/q6113613.html 以前こういう質問をして、 No.5の回答で教えてもらった関数を埋め込んでアンケートの入力をしています。 B列に数字50桁を入れて、C列に関数を入れてという感じです。 B2に数字50桁を入力してEnterを押すとC2からAY2までに1桁ずつ振り分けられるのですが B2の数字50桁はそのままです。 これは関数として、これはしょうがないそうなので 納得はしたのですが B2は実は問1を入力するセルだったんです。 なので、全部アンケートを入力し終わった後、B2を1桁に戻そうと思ったのですが そうすると、関数が効いているのでB2を1桁にするとC2からAY2まで入力されていた数字が消えてしまいます。 これはどうすればいいのでしょうか? 最終的なアンケートの入力データとして、50桁入っているセルは必要ありません(邪魔になってしまいます) なので、今B列の左隣に1列追加して これまでB列だったものがC列になったのですが この場合、B列に51桁を入れて(1桁目はブランクとして、2桁目からアンケートのデータ50桁を入れる) C列に関数を入れて、(C列が問1の回答を入力する) そうすると、1桁目をブランクにすることにより、 50桁入力したB列を直すことなくアンケートデータが完成します。 この場合入力し終わった後50桁入力しているB列を消しても C列以降の数字が消えることはありませんか? それとも消えてしまうのでしょうか? どうすればいいでしょうか?

専門家に質問してみよう