• ベストアンサー

8桁までの足し算を教えてください。

出力用紙の都合で、計算結果が最大8桁となる縦計算の結果を、 Excelで元数字、合計数字ともにセル1つに数字1つを入れるかたちで 表示させる式が欲しいのですが、私がこれまでに持っている知識 だけでは式がやたら長くなってしまいます。 例)A1~A8、A2~H2、A3~H3 の和をA4~H4に表示する場合 =MID(RIGHT(" "&(($A1&$B1&$C1&$D1&$E1&$F1&$G1&$H1)+($A2&$B2&$C2&$D2&$E2&$F2&$G2&$H2))+ ($A3&$B3&$C3&$D3&$E3&$F3&$G3&$H3)),8),COLUMN(A1),1) コレをA4に貼ってB4~H4にコピーペースト。 …というようなことしか思いつかないのですが、 たった3行の計算結果を表示したいだけでこんなに長くなってしまいます。 仮に20行分の計算結果を求めたいとしたら +($A*&$B*&$C*&$D*&$E*&$F*&$G*&$H*) の部分を20行分も後ろに書き連ねることになってしまいます。 これを『より簡単な式で』8分割された個々のセルに最大8桁の数の計算結果を 正しく表示させるための方法は無いでしょうか? テキストを図的に示す技量がないため大変解りづらくて申し訳ないのですが、 良い方法をご存知の方はぜひお教えください。

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

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

A4: =mod(int(sum(B1:B3)/10)+sum(A1:A3),10) 下の桁から繰り上がってくる値と自分の桁の合計の、上に繰り上 がっていく分を除外します。小学校の筆算そのままですね。 これで何桁でもコピーするだけ。

tanaka_san
質問者

お礼

なるほど! 言われてみればという感じでしてやられた気分です。(笑) ベストな回答を戴けたものと確信しますので締めさせていただきます。 ありがとうございました。

その他の回答 (4)

回答No.5

No.2,4です。 以下の式を用いれば正しく計算できると思います。 A21:=MOD(INT(SUMPRODUCT((10^(8-COLUMN($A$1:$H$1)))*$A$1:$H$20)/10^(8-COLUMN(A1))),10) H21までコピーしてください。

tanaka_san
質問者

お礼

締切後にわざわざすみません。 その後、20ptとさせていただいた方の式では、cafe_au_laitさんの 言われていたことと同じ「2桁の繰上り」の際に不具合が出ることが 判り、結局10ptとしてしまったchem_taroさん案で書類を作りました。 このように浅はかさを痛感していましたが、今回cafe_au_laitさんに ご提示いただいた式は正確かつシンプルで、配点をリセットさせて もらえるならこちらを20ptに切り替えたい心境です。 締切をもう少し待ってもよかっただろうと後悔しています。 お忙しい中、本当に良い回答を下さりありがとうございました。

回答No.4

No.2です。 2桁以上の繰り上がりなどがあるとうまく機能しませんでした。 下の回答は無視してください。

tanaka_san
質問者

お礼

貴重なお時間を割いていただいてすみません。 ありがとうございました。

回答No.2

筆算をするようなイメージでよろしいのでしょうか? H4:=MOD(SUM(H1:H3),10) G4:=MOD(SUM(G1:G3),10)+ROUNDDOWN(SUM(H1:H3)/10,0) G4をA4までコピーします。

  • chem_taro
  • ベストアンサー率32% (33/101)
回答No.1

ちょっとやることがうまくイメージできていないので外していたらごめんなさいですが、思うに、発想を転換して、計算は10進数でやるというのが一番簡単かなと思います。 A1~H1までに8桁の数字のそれぞれの桁が入っているとして、I1のセルにその数字を10進数で計算(=A1*10000000+B1*1000000+C1*100000+D1*10000+E1*1000+F1*100+G1*10+H1)しておきます。その上で不要なら非表示にしておきます。 同様にA2~H2、A3~H3・・・A20~H20もI2、I3・・・I20をつくっていきます。(さっきのI1をフィルハンドルでコピーすれば楽です。) 最後に合計をA21~H21にいれていくわけですが、まず、I21に「=SUM(I1:I20)」といれ、I1からI20までの合計を求めます。 つぎに、それぞれの答えの桁をいれていくわけですが、 A21には =MOD(INT($I21/10000000),10) B21には =MOD(INT($I21/1000000),10) C21には =MOD(INT($I21/100000),10) D21には =MOD(INT($I21/10000),10) E21には =MOD(INT($I21/1000),10) F21には =MOD(INT($I21/100),10) G21には =MOD(INT($I21/10),10) H21には =MOD($I21,10) といれればそれぞれの桁を取り出すことができるはずです。

tanaka_san
質問者

お礼

確かにこれで必要な値は取り出せますね。 3の方が言いたいことをよりシンプルにまとめて 下さっているので「次点」とさせていただきます。 ありがとうございました。

関連するQ&A