• ベストアンサー

エクセルの関数について教えてください。

エクセルにて、請求一覧表からデータを連係させて会社様式の請求書単票に印刷をしたいと考えています。 連係させるデータは宛名・金額・請求件名など簡素な内容なのですが、 請求書単票が会社の固定様式で、金額欄の一桁ずつ枠が設けられているため苦戦しています。 宛名、請求件名などは、VLOOKUP関数でなんとかできたのですが、金額の部分が先述しましたように、 金額欄が一桁ずつの枠に連係させる方法がよくわかりません。 VLOOKUP:指定した範囲の中から、検索条件に一致したデータを検索し、取り出す。 MID:指定した位置から指定した文字数分の文字列を抽出 IF:例1000円であった場合に、上位桁数をゼロではなく非表示にする。 これらを組み合わせればできるのではなかと思うのですが、うまくいきません。 どなたかお詳しい方がいらっしゃいましたら、ぜひご教授願います。

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

  • ベストアンサー
  • Alpha-j
  • ベストアンサー率66% (18/27)
回答No.2

今仮に Vlookup で引っ張ってきた数字がセルA2に入っているとします 右から n 桁目の数字を取り出すには 全体がn桁より小さければ空白 n桁に等しいか、n桁より大きければその数字 となりますので 以下の関数でできます (nにはご自分で対応する数字を入れてください) =IF(LEN(TRIM(A2))<n,"",MID(A2,LEN(A2)-n+1,1))

skindeep
質問者

お礼

ご丁寧にご教授くださり恐れ入ります。 おかげさまでなんとか解決しました。 本当にありがとうございました。

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

仮に10桁のセルに金額を分けるとします。 =MID(RIGHT(REPT(" ",10)&(ここにVlookupの式),10),COLUMN(A1),1) で右へ10個コピィしてみてください。 REPT(" ",10)&(ここにVlookupの式) 金額の前に10個に半角スペースを追加 RIGHT(REPT(" ",10)&(ここにVlookupの式),10) その結果を右から10個抽出 ______1000 となります。 MID関数で、左から1個づつ取り出していきます。

skindeep
質問者

お礼

丁寧なご説明ありがとうございます。 おかげさまで、なんとか解決できました。 いろんな方法があるのかと関心しきりです。 この度は、ありがとうございました。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

表示する数字を各桁の1文字ずつに分解できればよいのですよね? 仮にB3に表示したい値が入っているとします。 (実際はVlookUpなどの結果だと思いますが、調整してください) n桁目の数字は、右から数えてn文字目ということになりますから、  =MID(B3、LEN(B3)-n+1、1)となります。 でも、このままだと、nがB3の桁数より大きいとエラーになってしまいます。 また、nを桁(=列)でオートフィルできるように、併せて修正すると、 桁の最大表示欄を10桁までとすれば、10桁目(=一番左)に  =IF(LEN($B$3)+COLUMN(A1)-10>0,MID($B$3,LEN($B$3)+COLUMN(A1)-10,1),"") として、右に10桁分オートフィルすればよろしいかと・・・ (オートフィルをしなくてもよければもう少し簡単になります)

skindeep
質問者

お礼

お礼が遅くなりすみません。 早々にご解答下さり痛み入ります。 おかげさまでなんとか、解決することができました。 いろいろな方法があるのですね。 勉強になりました。 どうもありがとうございました。

関連するQ&A