Excel(2002以降)で、たとえば
セルA1に 33,2,55,764
セルA2に 654,654,8,165,46
のように、カンマ区切りで数字が入っていて、
その数字の合計をB列に表示させるということは可能でしょうか?
試算用にB列・C列などを使い、結果をD列、などという方法でも大丈夫ですが、数字がいくつに分けられるかはわからない(極端な話100個や200個の可能性もある)ので、その分のセルを確保するのは無理です。
数字はいくつ入っているかはセルごとに違い、何も入っていない場合や1つしかない場合もあります。
カンマを+に置換して計算させるような関数があればできそうだと思ったのですが、ヘルプでは探しだせませんでした。
なにかいい方法があればお願いします。
No.4ベストアンサー
- 回答日時:
こんにちは。
次の方法を試してみてください。
***
B1に↓を入れ、以下オートフィルでコピー
------------------------
=SUBSTITUTE(A1,",","+")
------------------------
B1セルを選択した状態で、
メニュー<挿入>-<名前>-<定義>
▽
いちばん上の欄に適当な名前を入力(例:keisan)
▽
いちばん下の「参照範囲」欄に
↓のように入力してOKをクリック(Sheet1なら)
-------------------------
=EVALUATE(Sheet1!$B1)
-------------------------
絶対参照を間違えないようにしてください。
$B1 です。
▽
C1に↓を入力して、以下オートフィルでコピー
----------------------------------------
=keisan
--------
C列に計算結果が表示されると思います。
空白セルの場合はエラーになりますので
それを表示させないようにするには、
↓のようにしてください。
-------------------------------
=IF(B1="","",keisan)
-------------------------------
まさに求めていた方法でした。ありがとうございます。
ところで、EVALUATEというのはなんなのでしょうか?
Excelのヘルプでは出てこないですが・・・。
No.7
- 回答日時:
すみません、No.4です。
>極端な話100個や200個の可能性もある
No.4の方法では、
セルに入っている数値の個数に限界があるようです。
ちょっとテストしてみたところ
1桁の数字で130個あたり、
3桁の数字で 65個以上ぐらいでエラーになりました。
回避策はわかりません・・・すみません。
No.5、No.6の方のユーザー定義関数を試してみてください。
>EVALUATEというのはなんなのでしょうか?
VBAのメソッドにもありますが、
この場合は、VBAの前身(?)、 EXCEL4.0マクロの関数です。
No.6
- 回答日時:
VBAのユーザ定義関数で
Public Function add(CVS As String) 'カンマ区切りの文字列の数値を足し算する
Dim a, x, sum
a = Split(CVS, ",")
sum = 0
For Each x In a
sum = sum + x
Next
add = sum
End Function
として、
B1
=add(A1)
として下にコピー
No.5
- 回答日時:
> 100個や200個の可能性もある)ので、その分のセルを確保するのは無理です。
そういうことであれば、VBAによるユーザー定義関数を使うよりないと思います。
宜しかったら、次の手順でテストしてみてください。
CommaSplitAdd関数の設定手順
1.Alt + F11 で VBE(Visual Basic Editor)を開きます。
2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。
3.モジュールウィンドウに下記コードをコピーして貼り付けます。
4.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。
5.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を
「中」にして[OK]します。
これで、CommaSplitAdd関数が使用出来ます。
書式:
= CommaSplitAdd(カンマで区切られた文字列式)
仕様
カンマで区切られた数字を加算します。
文字列式に数字以外が含まれている場合は、その文字を無視します。
使用例:
セルA1に 33,2,55,764 が入力されているとき、
= CommaSplitAdd(A1)
で、854 が表示されます。
一般の関数のように使用することが出来ます。
これで、如何でしょうか。
Function CommaSplitAdd(CelStr As String)
Dim N As Long
Dim WStr As String
Dim W As String
Dim ValSum As Currency
For N = 1 To Len(CelStr & ",")
W = Mid(CelStr & ",", N, 1)
If IsNumeric(W) Then
WStr = WStr & W
Else
If W = "," Then
ValSum = ValSum + Val(WStr)
WStr = ""
End If
End If
Next N
CommaSplitAdd = ValSum
End Function
No.3
- 回答日時:
FIND関数を絡めて、LEFT関数や、RIGHT関数は使えませんか。
※カンマ区切りでは支障が出るようなので、半角スペース区切りに変更しました。
A1に 10 32 200 10
B1に =LEFT(A2,FIND(" ",A2)-1)
C1に =RIGHT(A2,LEN(A2)-FIND(" ",A2))
D1に =LEFT(C2,FIND(" ",C2)-1)
E1に =RIGHT(C2,LEN(C2)-FIND(" ",C2))
:
:
といったようにしていけば(もう少しきれいな書き方があると思いますが)、可能は可能ですが、A1に100個の数字が含まれる場合、作業領域にいったいどれだけ使う気かという状態になってしまいますし、どうしてもA1に書ける数字の個数に制限ができてしまいます・・。
最初に考えたのは
B1に ="="&SUBSTITUTE(A2," ","+")
とし、この文字列の式を数式として計算してくれる関数があれば、と思ったのですが、存在しないのでしょうかね・・・。
No.2
- 回答日時:
A列を選択して「CTRL+H」で置換機能を使用し「,」から「+」に置換します。
B列に「="あ"&A1」と式を組み、置換した文字列の先頭に「あ」という文字をつけます。
B列をコピーしC列に〈形式を選択して貼り付け→値)と値のみを貼り付けます。
B列の選択し「あ」から「=」に置換します。
もっとスムーズなやり方があるかもしれませんが、これぐらいしか思いつきませんね。
それではA列が変更するたびにB列も計算させなおさないといけませんよね。
A列は形式を変更せず(カンマで区切った0個以上の数字)、その和を隣に自動計算させたいのです。
マクロを使えばy0923さんの方法でも自動計算させられますが、もうちょっとスマートな方法がないかと考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) B列に、A列の数字が偶数の場合は1減算した数字、奇数の場合はそのまま数字を自動表示したい 4 2022/04/16 12:01
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) Excelで数式をそのままコピーしたい どうすればいいですか? 4 2022/09/16 02:16
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- その他(IT・Webサービス) 高速処理可能な表計算ソフトについて ExcelやGoogleスプレッドシートのような表計算ソフトで、 2 2023/04/29 16:06
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
エクセルでひとつのセルに複数の数字があり合計を出す
Excel(エクセル)
-
【エクセル】セルの中に数字と文字があり数字だけを足す方法
Excel(エクセル)
-
エクセルの一つのセル内に2つの数値を配置したい
その他(Microsoft Office)
-
-
4
エクセルで、同一セル内に自動的に足し算をすることはできますか?
その他(Microsoft Office)
-
5
カンマで区切った数値をCOUNTIFで数えたい
Excel(エクセル)
-
6
同一セル内に数字・文字がある場合の計算式
Excel(エクセル)
-
7
複数のセルのいずれかに数字がある場合に表示する関数
Excel(エクセル)
-
8
Excelでカンマ区切りの合計をユーザ関数で得たい
その他(プログラミング・Web制作)
-
9
1桁ずつセルごとに振り分けられた数字を合計する方法
Excel(エクセル)
-
10
エクセルで文字を含む式に、カンマ(,)をつけるには??
Excel(エクセル)
-
11
エクセルで文字と数字が入っているセルを足すには
Excel(エクセル)
-
12
EXCELのセルの中の半角カンマの数を数えたい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで2つの数値のうち大きい...
-
エクセルで、2種類のデータを...
-
エクセルで特定の文字が入って...
-
Excelで中央揃えが出来ない?
-
エクセルのまとめてカッコをつ...
-
数値の列から偶数のみを抽出す...
-
エクセルの関数
-
Excel 頭に「0」がついている...
-
エクセルに入力した文字列に句...
-
Excel 指定行までコピーをおこ...
-
セル内文章から、英数字のみ取...
-
桁の違う数値での並び替え
-
連続データを1行おきに貼り付け...
-
WEEKDAY 空白も7になってしまう
-
excelで、1つのセルに入ってい...
-
Excelの結合でA列とB列の内容...
-
空白への0入力 二次元配列(VBA)
-
Excelのデータ間引きについて
-
VLOOKUPのあいまい検索(スペー...
-
エクセルでチェックボックスを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで2つの数値のうち大きい...
-
エクセルで、2種類のデータを...
-
エクセルで特定の文字が入って...
-
エクセルのまとめてカッコをつ...
-
Excelで中央揃えが出来ない?
-
桁の違う数値での並び替え
-
Excel 頭に「0」がついている...
-
Excel 指定行までコピーをおこ...
-
エクセルで、数字列の中にハイ...
-
エクセルに入力した文字列に句...
-
連続データを1行おきに貼り付け...
-
WEEKDAY 空白も7になってしまう
-
エクセルの関数
-
セル内文章から、英数字のみ取...
-
excelで、1つのセルに入ってい...
-
数値の列から偶数のみを抽出す...
-
excel: 2行ずつ間隔を空けて関...
-
Excelのデータ間引きについて
-
Excelの結合でA列とB列の内容...
-
Excel2013 カラースケールを別...
おすすめ情報