• 締切済み

エクセルで英数字を合計するやり方

エクセルで小文字のアルファベットと数字が一緒に入っているセルの数字だけを合計するやり方を教えて下さい。 例えば、 a1b1c1 a1b1c1 上記のような2つのセルに英数字がある場合、 a2b2c2 となるように合計するやり方を知りたいです。

みんなの回答

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.4

a1b1c1 のように 1文字1数字1文字1数字1文字1数字 6桁限定でしたら =MID(A1,1,1)&VALUE(MID(A1,2,1))+VALUE(MID(A2,2,1)) &MID(A1,3,1)&VALUE(MID(A1,4,1))+VALUE(MID(A2,4,1))&MID(A1,5,1)&VALUE(MID(A1,6,1))+VALUE(MID(A2,6,1)) で、いけると思いますが、多分それはないような気がしますのでVBAで A1が abc2ffb11cfr19 A2が abc2ffb19cfr14 で(文字と数字の位置が一致していると) A3結果(文字はA1の文字) abc4ffb30cfr33 となるように Sub Test() Dim mAns As String Dim i As Long, tmp1 As Variant, tmp2 As Variant For i = 1 To Len(Range("A1").Value) tmp1 = Mid(Range("A1").Value, i, 1) tmp2 = Mid(Range("A2").Value, i, 1) If IsNumeric(tmp1) And IsNumeric(tmp2) Then If Len(CStr(Val(tmp1) + Val(tmp2))) = 2 _ And IsNumeric(Right(mAns, 1)) Then mAns = Left(mAns, Len(mAns) - 1) & _ CStr(Val(Right(mAns, 1) + 1)) & _ CStr((Val(tmp1) + Val(tmp2)) - 10) Else mAns = mAns & CStr(Val(tmp1) + Val(tmp2)) End If Else mAns = mAns & tmp1 End If Next Range("A3").Value = mAns End Sub

afvjndio
質問者

お礼

回答ありがとうございます。 Excelの勉強を始めたばかりで、現時点では頂いた回答内容を理解できませんが、勉強した後にじっくりと読ませて頂きます。 お忙しい中、長文の回答ありがとうございました。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

[No.1お礼]へのコメント、 斯樣なコメント、繰り返へさ無いでェ~! 私も貴方と大同小異の未熟なので、我々には不可能と云はざるを得ません、ハイ。m(_._)m

afvjndio
質問者

お礼

お忙しい中、再度回答頂きまして誠にありがとうございます。 頂いた回答はとても参考になりました。 ありがとうございました。<m(__)m>

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

関数利用では、すでに回答がでていますが、 興味がわいたので、すこし拡張してやってみた。 関数ではむつかしそうでVBA利用となり、正規表現の利用が避けられないと見た。 WEBに使えそうな記事があったので改造。 ーー 例データ A2;A4 <データ条件> ・数字は半角数字に統一されていること ・下記例での県名などは全行で文字と数字で、ペア―になって、そろっていること。  その数には制限はない。ほぼ、エクセル許容列数制限÷2 ・文字列部の文字数は制約はない。不揃いでもよい(東京2文字と神奈川3文字のように) 東京123神奈川56千葉98埼玉112 東京134神奈川76千葉131埼玉73 東京173神奈川91千葉72埼玉76 ーー 標準モジュールに Sub Sample5() Dim buf As String, RE, reMatch, reValue lr = Range("A10000").End(xlUp).Row '9999行以下とする MsgBox lr Set RE = CreateObject("VBScript.RegExp") '---文字部分 For i = 2 To lr buf = Cells(i, "A") With RE .Pattern = "[^0-9]+" .Global = True Set reMatch = .Execute(buf) c = 3 If reMatch.Count > 0 Then For Each reValue In reMatch Cells(i, c) = reValue c = c + 2 Next reValue End If End With Next i '----数字部分 For i = 2 To lr buf = Cells(i, "A") With RE .Pattern = "[0-9]+" .Global = True Set reMatch = .Execute(buf) c = 4 If reMatch.Count > 0 Then For Each reValue In reMatch Cells(i, c) = reValue c = c + 2 Next reValue End If End With Next i Set RE = Nothing End Sub ーーー 結果 同一シートのC列より右列に C列  D列  以右列は略 東京 123 神奈川 56 千葉 98 埼玉 112 東京 134 神奈川 76 千葉 131 埼玉 73 東京 173 神奈川 91 千葉 72 埼玉 76 ーー 最終目的の、合計(上記の県別の合計)は、最終行の直下行に出すとして、VBAでもできるが、関数で出すのは簡単なので略。

afvjndio
質問者

お礼

読み応えのある回答ありがとうございます。

afvjndio
質問者

補足

回答ありがとうございます。 Excelの勉強を始めたばかりで、現時点では頂いた回答内容を理解できませんが、勉強した後にじっくりと読ませて頂きます。 お忙しい中、長文の回答ありがとうございました。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

添附圖參照(Excel 2019) C3: =IF(SUM(C1:C2),SUM(C1:C2),C1) A3: =CONCAT(C3:H3)

afvjndio
質問者

お礼

ご親切に画像付きでの回答ありがとうございます。 未熟な質問で申し訳ございませんが、3つのセルで完結する事は不可能でしょうか? お手数ですが、回答頂ければ幸いです。

afvjndio
質問者

補足

ご親切に画像付きでの回答ありがとうございます。 未熟な質問で申し訳ございませんが、3つのセルで完結する事は不可能でしょうか?

関連するQ&A

  • エクセルで2つの条件に合うセルの合計

    エクセルで2つの条件に合うセルの合計 こんにちは。 例えば、以下のようにシート上にあるとします。 1 上 100 2 上 200 1 下 150 2 下 500 1 下 30 A列は1か2の数字 B列は上か下の文字 C列は数字 このシートでA列が1でかつ、B列が下の場合のC列を合計したいのですが、SUMIF関数でできるのでしょうか?他の関数でもかまいません。自分で関数を作るのはなしでお願いします。 (動作が重くなるので) ちなみに、上記の場合は、3行目と5行目が該当しますので、150+30=180となります。 -- エクセル2003

  • Excelでこんな事出来ますか?

    こんにちは!いつもお世話になっています。 Excelのセルに数字以外の文字、例えば「人」を 一緒に入力した場合に合計が計算されませんけど、 何か良い方法はないでしょうか? A1のセルに「10人」B1のセルに「12人」として C1のセルにA1+B1の合計を出したいのですが・・・ 当然、セルを二つ使い罫線を引かなければ、可能 なのでしょうが・・・ Excelは2002を使用しています。 OSはwindowsXPです。 詳しい方よろしくお願いします!

  • エクセルでちょっと変わった合計の求め方

    エクセルで以下のような事は簡単にできるでしょうか。       A   B   C  ・  ・  ・   1   3   0   2   2   1   2   1   3   1   2   1   4    5   3   2   0   6   3   1   0   7   1   2   1   8   9   3   2   2   ・   ・   ・ 12013  1   2   3 12014  2   1   3 12015  2   1   4 12016 12017 合計 合計 合計 12018 合計 合計 合計 12019 合計 合計 合計 12015行より上は入力された数字です。ここで、 Aの12017には、A1+A5+A9+・・・・+A12013、の合計 Bの12017には、B1+B5+B9+・・・・+B12013、の合計 Cの12017には、C1+C5+C9+・・・・+C12013、の合計 Aの12018には、A2+A6+A10+・・・・+A12014、の合計 Bの12018には、B2+B6+B10+・・・・+B12014、の合計      ・      ・ と、いうようにする場合、Aの12017にどのような数式を入れたらよいでしょうか? (=A1+A5+A9+A13+・・・・+A12013、なんて入力してられないので) Aの12017に数式がはいればBの12017以降はそれをコピーすればできると思いますので。 マクロは使った事ががありませんので関数とか利用した数式でできないでしょうか。 ちなみに簡素化のため列3X行3の入力された数字のかたまりで表示しましたが実際はもっと大きな かたまりです。また入力された数字の最後が何万何千何百何十何行になるかは データによって異なっています。

  • エクセル セル内の合計値に応じてセルの色を変えたい

         A      B        1    2    りんご2 2    4    りんご1,メロン3 3    3    メロン1,みかん1 上記のように,A列セルには数字が入っていて,B列セルには文字列と数字が入っています。 A1セルの値と,B1の文字列に含まれている数字は合致しているので,セルの色はそのままです。A2セルの値とB2の文字列に含まれている数字の合計が合致しているので,ここもセルの色はそのままです。しかし,A3セルとB3の文字列に含まれている数字の合計は合致していないので,B3セルに色を付けたいのです。 B列のセルは,1つのセル内に文字列と数字を入力することを前提に考えていますが,こうしたことは可能でしょうか?可能であれば教えていただけたら幸いです。

  • 文字の合計

    B1 文字A B2 文字B B3 文字C 上記のセルの値を並べる場合、例えばB4に「=B1&B2&B3」と入力すればB4に「文字A文字B文字C」と表記されます。しかし、セル数が上記のように3つであればセル入力も楽なのですが、数が増えてくると手に負えません。どのようにすれば容易に文字の合計が表示されるでしょうか?ご回答お願いします。

  • エクセル2003 期間+文字を摘出して合計する

    エクセル2003を使用してます。 期間は2012/7/21~2012/8/20まで 一覧表の中からその期間内にある 「みかん」 の文字があるところの金額だけを合計で出す …という計算式を作りたいのですが…どのように組んだらいいですか? 例)   Aセル       Bセル    Cセル(金額) 1 2012/7/26    ごぼう    400 2 2012/8/3     みかん   150 3 2012/8/17    りんご    300 4 2012/8/20    みかん   180 ・ ・ ・ 10 2012/8/31  みかん     150 みかん 合計  330 このような感じで期間を指定して、みかんの文字あるセルの数字だけを合計する計算式があるようでしたら教えてください。

  • エクセルで合計を求めるために

    エクセルで合計の数値を求めたいです 状況としては A列に数字が入力されています B列に入力があったものだけの合計をC1に表示させたいです 例としては A列 B列 100  1 150 200 250  山   この場合の合計をC1に100+250=350 B列の入力内容は状況によって変わります 現在はC1=IF(A1="","",B1)という関数を別の箇所に作って、それの合計を出させていますが、出来れば別の箇所に計算式を作らずにすむ方法を教えてください。お願いします

  • エクセル 空白セルまでの合計値を求める方法

    こんにちは。こちらではいつもお世話になっています。 タイトルの通り、エクセルの空白セルまでのの合計値を求める方法を教えてください。 具体的には、以下の通りです。 ==========================    A     B     C    1 合計値   1  2        2            3        3    4 5        2 6 7        2 ========================== A1のセルにB1:B7までの範囲で、空白セルがあるまでの合計値を求める関数を入れたいのです。 上記の場合であれば、B1:B3まで(B4が空白セルなのでそこまで)の合計です。 空白セルはその時々にかわるので、範囲をB1:B7としています。 説明が不十分であれば、申し訳ございません。 宜しくお願いします。

  • excelで、1つのセルに入っている複数の数字を合計するには?

    Excel(2002以降)で、たとえば  セルA1に 33,2,55,764  セルA2に 654,654,8,165,46 のように、カンマ区切りで数字が入っていて、 その数字の合計をB列に表示させるということは可能でしょうか? 試算用にB列・C列などを使い、結果をD列、などという方法でも大丈夫ですが、数字がいくつに分けられるかはわからない(極端な話100個や200個の可能性もある)ので、その分のセルを確保するのは無理です。 数字はいくつ入っているかはセルごとに違い、何も入っていない場合や1つしかない場合もあります。 カンマを+に置換して計算させるような関数があればできそうだと思ったのですが、ヘルプでは探しだせませんでした。 なにかいい方法があればお願いします。

  • エクセル初心者です

    エクセル初心者です エクセルの教本らしきものをみながら実際にエクセルをいじってみました エクセルの教本では表の横列はABCといったアルファベットが並んでいて縦は123という数字がならんでます 。で表を作り、各セルに入力されてある数値を足したいとき教本では=b3+C3というように入力してエンターをおすとb3とC3に入力してある数値をたしたものの合計がででいます。 私もしてみたのですが私のパソコンはビスタでエクセル2007なのですが表の横列がアルファベットではなく縦も横も数字になっております。 この場合=b3+C3と入力しても正しく認識されざ#NAME?とでます。 私の表では横列がアルファベットでなく数字なのでBのとこを2 Cのとこを3にかえて計算=23+33としてエンターを押しても56とでて各セルのなかの数値同士を足したものがでてきません。 どうすればいいんですかね

専門家に質問してみよう