dポイントプレゼントキャンペーン実施中!

乱数で4桁の数字を出してその各位の和を求めるにはどうすればよいか教えてください。エクセル2002です。
2876 ならば 23 を求めたいのです。
セルを4つ使ってなら出せるのですが、1つの関数でまとめることができるか教えてください。

A 回答 (5件)

=SUMPRODUCT(MID(A1,ROW(INDIRECT("A1:A"&LEN(A1))),1)*1)



数式の説明
LEN(A1)で桁数を算出
ROW(INDIRECT("A1:A"&LEN(A1)))
で1~桁数までの数値を配列として取得
MID関数でA列の各桁の数値を文字配列として取得
SUMPRODUCT関数で*1で数値化した各桁を合計
    • good
    • 4
この回答へのお礼

早速、ご回答いただいてありがとうございました。
乱数でたまに3桁になることがあるのを忘れていましたが、これでうまくいきました。解説書と照らしあわしてもまだ数式が十分飲み込めず格闘していましたが、解決できて喜んでいます。他の皆さんもありがとうございました。

お礼日時:2006/04/11 11:21

No.4さんの“二番煎じ”になりますが…


{=SUM(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1)}

桁数自動判断ということで、敢えて記載しました。
    • good
    • 0

=SUM(MID($A$1,ROW(B1:B4),1)*1)


と入れて、SHIFT+CTRL+ENTERの3つのキーを同時押しします。
配列数式です。
ROW(B!:B$)の部分は、配列数式で、1,2,3,4をひねり出すコツです。
*1は文字を数値化するコツです。
配列数式では、ROW(B!:B$)の部分が4つのセルを指定しているので、4つの式の結果を足し(SUM)てくれます。
10桁でも、式が長くならないメリットがあります。
    • good
    • 1

No.2さんの“二番煎じ”になりますが…


=SUMPRODUCT(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1)
    • good
    • 0

いくつも方法はありますが


=LEFT(A1,1)+MID(A1,2,1)+MID(A1,3,1)+RIGHT(A1,1)
とか、
rounddownを使って1000、100、10で割った数値を足す
INTを使う
とか。。。まだまだあるかな
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!