OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセルで、1セル内のデータの計算

  • 困ってます
  • 質問No.235993
  • 閲覧数110
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

XP+EXCEL2002です。

ひとつのセル内に";"で区切られた数値が入力されています。
例) 250;1500;890
これらを;区切りの数値としてとらえて
サマリ値を任意のセルに表示したいのですが可能でしょうか?
(例の場合は250+1500+890=2640)

なおセルには何も入力されていない場合があり
またレコードの並びの最後には;はありません。

よろしくおねがいします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

>が、ホントはマクロは組みたくなかったです。。。
シートだけで行う方法を考えてみました。

『250;1500;890』の形式のデータが、A1から下方向に向かって多数登録されているとします。

(1)A列をコピーしてC列に貼り付けます。
(2)C列を選択します。
(3)データ→区切り位置 を実行。
(4)元のデータの形式で『カンマやタブなどの区切り文字・・・』を選択して、次へ。
(5)区切り文字で『セミコロン』にチェックして、完了。データが分離される。
(6)B1に =SUM(C1:IV1) を入力して、フィルハンドルをダブルクリックしてコピー。

セミコロンが250個程度までなら、これでB列に合計が表示されます。
これはExcel97での操作です。Excel2002では?ですが、余り変わらない?ご参考に。
お礼コメント
noname#24238

回答ありがとうございます。
御礼遅くなってすいません。
忙しかったり、OK Webだけつながりにくかったりしたもんで。。。

セルには多くても10個を超える;区切りのデータが入ることはないので
この方法でやってみようかと思います。

ご協力ありがとうございました。
投稿日時 - 2002-03-31 03:11:40
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

ユーザー定義関数を作ってみました。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。出てきたコードウインドウに下記ユーザー定義関数を貼り付けます。 例えば、セルA1にある文字列の計算をする場合は、  =SumCalc(A1) とします。 A1に何も入力されていなければ『0』と表示されます。最後の行の『&# ...続きを読む
ユーザー定義関数を作ってみました。
ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。出てきたコードウインドウに下記ユーザー定義関数を貼り付けます。

例えば、セルA1にある文字列の計算をする場合は、

 =SumCalc(A1)

とします。
A1に何も入力されていなければ『0』と表示されます。最後の行の『'』を外せば何も表示しません。
また、『EE;1』は『1』、『EE;E』は『0』のように計算します。
『;』は何個でもかまいません。ご参考に。(Excel2000です)

Public Function SumCalc(Fm As String)
  Dim wkFm As String  '計算用のワーク変数
  Dim pot As Integer  '『;』の位置
  Dim TTL As Double   '合計値

  wkFm = Fm
  If Right(wkFm, 1) <> ";" Then wkFm = wkFm & ";"
  pot = InStr(wkFm, ";")
  While pot > 0
    TTL = TTL + Val(Left(wkFm, pot - 1))  '『;』で分離して加算する
    wkFm = Right(wkFm, Len(wkFm) - pot)   '対象文字列を短くする

    pot = InStr(wkFm, ";")
  Wend
  SumCalc = TTL
  'If TTL = 0 Then SumCalc = ""
End Function
お礼コメント
noname#24238

ご協力ありがとうございます。

関数を作っていただけるなんて・・・
ちょっと感動すらしています。

が、ホントはマクロは組みたくなかったです。。。
足し算するだけのことに起動時の確認パネルが出るのが嫌だったので。。。

けどセルに記述する方法でループ処理させるような方法はないみたいですね。

入力方法も含めもうしばらく検討してみます。
ありがとうございました。
投稿日時 - 2002-03-18 02:47:15

  • 回答No.2
レベル14

ベストアンサー率 28% (4322/15243)

考えたとおり式にしてみました。暗算でやるほうが速い。 馬鹿馬鹿しいと笑ってください。プログラムを組むときは 根気がいるから、本件でもやって見ました。 A1にデータがあるとします。 B1に=SEARCH(”;”,A1,1) C1に=SEARCH(”;”,A1,B1+1) D1に=LEN(A1) E1に=B1-1 F1に=C1-B1-1 G1に=D1-C1 H1に=MID(A1,1,E1) ...続きを読む
考えたとおり式にしてみました。暗算でやるほうが速い。
馬鹿馬鹿しいと笑ってください。プログラムを組むときは
根気がいるから、本件でもやって見ました。
A1にデータがあるとします。
B1に=SEARCH(”;”,A1,1)
C1に=SEARCH(”;”,A1,B1+1)
D1に=LEN(A1)
E1に=B1-1
F1に=C1-B1-1
G1に=D1-C1
H1に=MID(A1,1,E1)
I1に=MID(A1,B1+1,F1)
J1に=MID(A1,C1+1,G1)
K1に=H1+I1+J1
B1からK1をB2からK10(例えばの一例)に複写する。
お礼コメント
noname#24238

回答ありがとうございます。

お礼遅くなってすいません。

忙しかったり、繋がりにくかったりしたもんで・・・

ひとつのセルに関数をごちゃごちゃくっつけて
何とかならないかと思っていたのですが
やっぱり一つ一つやっていくしかないですかねぇ、、、

ありがとうございました。
投稿日時 - 2002-03-31 03:08:40
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ