- ベストアンサー
エクセル2003の集計で
エクセル2003の集計で セルA列にコンマ区切りで数値が入っているのですが これをセルB列でで集計することってできますか? A列の数値の数はバラバラです このような感じです↓ A1 1,2,3 B1 6 A2 2,3 B2 5 A3 9,1,7 B3 17 よろしくお願いします
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
VBAでユーザ関数を作成した方が楽だと思います。 【例】 B1 =SumComma(A1) 【VBA】 Function SumComma(ByVal カンマデータ As Variant) As Variant SumComma = Evaluate(Replace(カンマデータ, ",", "+")) End Function 注)値のチェック(数字等)は行っていません。
その他の回答 (6)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 マクロしかないと思います。 Sub データ集計() For Each a In Range("A:A") If a = "" Then Exit Sub c = Application.WorksheetFunction.Substitute(a, ",", "+") Range("b1").Offset(a.Row - 1) = "=" & c Next End Sub
お礼
ありがとうございました やはりマクロも勉強しないと駄目ですね
- KURUMITO
- ベストアンサー率42% (1835/4283)
難しい式になりますので単純に一桁の数値がカンマで区切られておりカンマが3つまである場合でしたら次の式をB1セルに入力して下方にオートフィルドラッグします。 =IF(LEN(A1)-LEN(SUBSTITUTE(A1,",",""))=1,MID(A1,1,1)*1+MID(A1,3,1)*1,IF(LEN(A1)-LEN(SUBSTITUTE(A1,",",""))=2,MID(A1,1,1)*1+MID(A1,3,1)*1+MID(A1,5,1)*1,IF(LEN(A1)-LEN(SUBSTITUTE(A1,",",""))=3,MID(A1,1,1)*1+MID(A1,3,1)*1+MID(A1,5,1)*1,IF(LEN(A1)-LEN(SUBSTITUTE(A1,",",""))=4,MID(A1,1,1)*1+MID(A1,3,1)*1+MID(A1,5,1)*1+MID(A1,7,1)*1,""))))
お礼
やはりいろいろ制約がでてしまうんですね ありがとうございました
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
とんでもない数式になっちゃいました(^^ゞ B1セルに =IF(ISNUMBER(A1),A1, SUM(0+IF(FIND(",",","&A1&",",ROW($A$1:INDEX(A:A,LEN(A1))))>FIND(",",A1&",",ROW($A$1:INDEX(A:A,LEN(A1)))),0, MID(A1,FIND(",",","&A1&",",ROW($A$1:INDEX(A:A,LEN(A1)))),FIND(",",A1&",",ROW($A$1:INDEX(A:A,LEN(A1))))-FIND(",",","&A1&",",ROW($A$1:INDEX(A:A,LEN(A1)))))))) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)
お礼
配列まで出てくるとはかなり複雑なんですね ありがとうございました
- KURUMITO
- ベストアンサー率42% (1835/4283)
集計といっても良くわかりません。例えばB1セルの答えは幾つになるのですか?
補足
セルA1に1,2,3という文字列があった場合セルB1は6という感じです
- nattocurry
- ベストアンサー率31% (587/1853)
とりあえず、メニューの データ ‐ 区切り位置 で、カンマ区切りでデータをセルに分けることができるので、それをやってみましょう。
お礼
ありがとうございました
補足
すいません それはできることがわかっているのですが他にないかと思いまして質問しました 説明不足で申し訳ありません
お礼
ありがとうございました 今回はこのマクロを使わせていただきました