ここから質問投稿すると、最大4000ポイント当たる!!!! >>

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

このQ&Aに関連する最新のQ&A

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
    • 3
この回答へのお礼

早速、ご回答いただいてありがとうございました。
乱数でたまに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に関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q複数桁の数字を1セルずつ表示したい

エクセル2010を使っています。

1つのセルに入っている複数桁の数字を、1セルずつ分けて表示させたいと思っています。
しかも、数字を置き換えて桁数が減った場合には、右に詰めたいです。

(例)
AIに12345 と入力したら、B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。
A1の数字を123に置き換えたら、B1、B2は空欄、B3に1、B4に2、B5に3と置き換わるようにしたい。

ただ単に数字を1セルずつ分けるだけでしたら、mid関数を使ってできるのですが、
桁数の異なる数字に置き換えると右に詰めるようにするにはどうしたらよいでしょうか。

更に、数字の左側に円マークも表示させたいです。

よろしくお願いします。

Aベストアンサー

>B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。

 それでは数字が縦並びになっている事になりますが、それを

>右に詰めたいです。

とは一体どういう意味なのでしょうか?
 しかも、

>更に、数字の左側に円マークも表示させたいです。

となりますと、1,2,3,4,5の5個の数字に加えて円マークまで表示するのですから、合わせて6個のセルが必要になりますから、B5に1の位を表示させたのでは、セルの個数が足りないため、\12345を表示する事は出来ません。
 ですから、

>B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。

というのは間違いであるものと考えて、B1~G1に1桁ずつ、円マーク付きで表示する方法を回答させて頂きます。

 まず、G1セルに次の関数を入力して下さい。

=IF(COLUMNS(G:$G)>LEN(TEXT($A1,"¥0;¥-0")),"",LEFT(RIGHT(TEXT($A1,"¥0;¥-0"),COLUMNS(G:$G)),1))

 そして、G1セルをコピーして、B1~F1のセル範囲に貼り付けて下さい。

 以上です。

>B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。

 それでは数字が縦並びになっている事になりますが、それを

>右に詰めたいです。

とは一体どういう意味なのでしょうか?
 しかも、

>更に、数字の左側に円マークも表示させたいです。

となりますと、1,2,3,4,5の5個の数字に加えて円マークまで表示するのですから、合わせて6個のセルが必要になりますから、B5に1の位を表示させたのでは、セルの個数が足りないため、\12345を表示する事は出来ません。
 ですから、

>B1に1、B2に2、B3に3、B4に4、B5...続きを読む

Qエクセル関数/任意の桁数の数字1個1個を別々のセルに読み込む関数

こんにちは
例えば、あるセルに123456という6桁の数字が入っていたとして、1、2、3、4、5、6の6個の数字をそれぞれ別々の(6個の)セルにコピーしてくれるようなエクセル関数はあるでしょうか?

Aベストアンサー

G列に入力した最大6桁の「数値」の、一の位はF列に、十の位はE列
に…と桁毎に分離したいと。小数点以下を無視した基本は、

F1: =mod(int(G1/1),10)
E1: =mod(int(G1/10),10)
D1: =mod(int(G1/100),10)

以下、察して下さい。で、これはブランクでも全部の桁に0が入りま
すね。途中の桁の0は表示して、余分なヤツだけ見えないようにする
工夫が必要です。たとえば

F1: =if(int(G1/1),mod(int(G1/1),10),"")
E1: =if(int(G1/10),mod(int(G1/10),10),"")

みたいな感じはいかがでしょう。

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

こんばんは。大変こちらでお世話になっています。

エクセルのデーターをもとに、宛名印刷をしたくていろいろ試みているのですが、会社規定の封筒の郵便番号枠に、美しく数字を印字することがどうしてもできません。
こうなったら、郵便番号をばらして、1字づつ印刷しようかと思っています。

そこで教えて頂きたいのですが、今1つのセルに入っている郵便番号7桁をそれぞれ1桁づつ、7つのセルに分けたいのです。これは何か関数を使ってできるのでしょうか?
どうぞ教えてください。よろしくお願いします。

Aベストアンサー

MIDという関数が良いかと思います。
A1に対象の値が入っているとして
=MID(A1,xxx,1)
xxxの部分は何桁目から取り出すか、最後の数字が何文字取り出すかという指定です。

例)A1に「abcdefg」とあり
=MID(A1,3,1)
とすると「c」が表示されます。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QExcel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合

MATCH関数で、検索した値が複数ある場合に1つしか出なくて困っています。
(例)
   A B C D
1 年月日 種類 番号 備考
2 4月1日 肉類 1
3 4月2日 野菜 2
4 4月3日 肉類 1
5 4月4日 果物 2
6 4月5日 野菜 1
7 4月6日 果物 3
8 4月7日 果物 2
9 4月8日 肉類 1

この表で、D9の備考の欄に「種類:肉類、番号:1」と同じものがあった時の日付を、新しい日付で取り出したいのです。

INDEX(A2:A8,(MATCH(B9,B2:B8,0)+MATCH(C9,C2:C8,0))/2)
としたのですが、本当は4月3日を取り出したいのですが、4月1日が出てきます。
どのようにしたら良いでしょうか?
Excel2003です。
よろしくお願いします。

Aベストアンサー

MATCH関数を使用しませんが、D9の書式を日付にして、
=MAX((A2:A8)*(C2:C8=1)*(B2:B8="肉類"))
と、入力してShift+Ctrl+Enterキーで入力完了してみてください(配列式になります)。

QエクセルのIF文で「NOT=」はどう書くのですか?また、>=や<=の場合の書き方を教えてください

タイトルのとおりです

IF文で下記の3つの書き方がわかりません。

NOT=は、<>?
0以外の場合は、A1<>0?

A1が0と同じか、大きい場合は
A1>=0?

なんだか、うまくいきません^^;

よろしくお願いいたします

Aベストアンサー

A1が・・・・・
A1 <> 0  0以外
A1 >= 0  0以上(0を含む)
A1 > 0   0より大きい(0は含まない)
A1 <= 0  0以下(0を含む)
A1 < 0  0未満
A1 = 0  0

=<,=> などの書き方は使えません。

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。

Qエクセル 0や空白のセルをグラフに反映させない方法

以下の点でどなたかお教えください。

H18.1~H20.12までの毎月の売上高を表に記載し、その表を元にグラフを作成しています。グラフに反映させる表の範囲はH18.1~H20.12の全てです。
そのためまだ経過していない期間のセルが空白になり、そこがグラフに反映され見づらくなります。
データを入力する都度グラフの範囲を変更すればいいのですが、うまく算式や設定等で空白や0円となっているセルをグラフに反映させない方法はありますか?

お手数ですが、よろしくお願いいたします。

Aベストアンサー

売上高のセルは数式で求められているのですよね?
それなら
=IF(現在の数式=0,NA(),現在の数式)
としてみてください。
つまり、0の場合はN/Aエラーにしてしまうんです。N/Aエラーはグラフに反映されません。

Q秒を時分秒に変換する

EXCELで秒を時分秒に変換することは可能でしょうか?
19827635秒を何時間何分何秒に変換するもの

Aベストアンサー

A1に19827635秒が入っているとして
別のセルに
=TEXT(A1/24/60/60,"[h]時間mm分ss秒")
とすれば出きそうです。
5507時間40分35秒

Qエクセルで横並びの複数データを縦の一本のデータにしたい

こんにちは。宜しくお願い致します。

   A   B  C
1 静岡 埼玉 
2 福島 東京 愛媛
3 青森 
4 長崎 徳島 愛媛
5 東京 千葉 
6 秋田 兵庫 大阪
.
.
.


例えばこういう形で好きな都道府県の上位3つの解答がそれぞれあったとします。(1個の人もいるし、2個の人もいます)

これを別のシート(同じシートの違う場所でも構いません)に縦並び1本で出したいときどうしたらいいでしょうか。

★こういう風にしたい★

静岡
福島
青森
長崎
東京
秋田
埼玉
東京
愛媛
徳島
愛媛
千葉
兵庫
大阪
.
.

※好きな県などが人によって重複していても構いません、また順不同でもいいです。(縦並びのデータに東京が20個あってもよいということ)

形式を選択して貼り付けで行列を入れ替えるではうまくいかないです。

宜しくお願い致します。

Aベストアンサー

VBAで、もっと簡単に。
下記をVBEの標準モジュールにコピーし貼りつけ。
元データのあるシートで、データのある範囲を範囲指定して(空白セルが範囲内にあっても結構)、下記を実行。
Sub ichiretu()
Dim cl As Range
p = 1
For Each cl In Selection
If cl <> "" Then
Worksheets("sheet3").Cells(p, "A") = cl
p = p + 1
End If
Next
End Sub
Sheet3のA列に並びます。


人気Q&Aランキング