• ベストアンサー

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

XP+EXCEL2002です。 ひとつのセル内に";"で区切られた数値が入力されています。 例) 250;1500;890 これらを;区切りの数値としてとらえて サマリ値を任意のセルに表示したいのですが可能でしょうか? (例の場合は250+1500+890=2640) なおセルには何も入力されていない場合があり またレコードの並びの最後には;はありません。 よろしくおねがいします。

noname#24238
noname#24238

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

>が、ホントはマクロは組みたくなかったです。。。 シートだけで行う方法を考えてみました。 『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個を超える;区切りのデータが入ることはないので この方法でやってみようかと思います。 ご協力ありがとうございました。

その他の回答 (2)

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

考えたとおり式にしてみました。暗算でやるほうが速い。 馬鹿馬鹿しいと笑ってください。プログラムを組むときは 根気がいるから、本件でもやって見ました。 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
質問者

お礼

回答ありがとうございます。 お礼遅くなってすいません。 忙しかったり、繋がりにくかったりしたもんで・・・ ひとつのセルに関数をごちゃごちゃくっつけて 何とかならないかと思っていたのですが やっぱり一つ一つやっていくしかないですかねぇ、、、 ありがとうございました。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

ユーザー定義関数を作ってみました。 ツール→マクロ→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
質問者

お礼

ご協力ありがとうございます。 関数を作っていただけるなんて・・・ ちょっと感動すらしています。 が、ホントはマクロは組みたくなかったです。。。 足し算するだけのことに起動時の確認パネルが出るのが嫌だったので。。。 けどセルに記述する方法でループ処理させるような方法はないみたいですね。 入力方法も含めもうしばらく検討してみます。 ありがとうございました。

関連するQ&A

  • EXCEL97,2000のセル書式について

    セルの書式指定の設定でセルに入力された数値が少数第1位より上のデータが 入力された場合は無条件に「XXX.X」と表示し、 第2以下の数値が入力された場合は、入力された値をそのまま表示するには セルの書式指定をどのように設定すればよろしいのでしょうか? 例)「2」と入力 → セルには「2.0」が表示   「100」と入力 → セルには「100.0」が表示   「0」と入力 → セルには「0.0」が表示   「1.6」と入力 → セルには「1.6」が表示   「1.61」と入力 → セルには「1.61」が表示   「999.999」と入力 → セルには「999.999」が表示

  • Excelの計算式または関数について

    Excel2007を使用しています。  次のようなことをやりたいのですが、計算式または関数、または関数と計算式の組み合わせを教えていただきたくお願いいたします。 問題  例えばA列にA1からA10まで何らかの数値は入っていて、次にA11に何らかの数値を入力した場合、A11に入力した数値がA1からA10までのいずれかのセル入力されている数値と同じ場合にはB11のセルに「重複」と表示する。以下A12セルへの入力された数値はA1からA11までのいずれかのセルに入力されている数値と同じ場合にはB12のセルに「重複」と表示する。以下セルA13以下へ入力する数値についてもすでに入力済みのセルの数値と同様な比較を行って対応のB列のセルに「重複」と表示をする処理を行う。  以上のような処理を行いたいのです。よろしくお願いいたします。

  • Excel セルの書式について

     任意のセルにある数値を入力したら、その数値にもとづいて、その数値以降のセルの書式を変更したいのですが、どのようにすれば良いのか、ご教示をお願いいたします。 「条件付き書式」で出来そうな気がしますが、技術不足のため質問させて頂きました。よろしくお願いいたします。 Windows 10 Excel 2016 ※図ではA1に「6」を入力し、「7」(G3)以降が網掛けになっています。

  • エクセルで特定のセルに色をつけたい

    条件は以下の通りです。 ・A列には1年間分の日付が入っている。 ・B列には毎日1回キーボードから任意の数値を入力する。 ・B列に入力した数値が過去最低であったとき、その入力したセルとその左隣のセル(日付のセル)を塗りつぶす。 ・B列に入力した数値が過去最低であっても、すでに過去に同じ数値が入力されていた場合は、過去のセルを塗りつぶす。 例 2/1 98 2/2 96 2/3 92 2/4 94 2/5 92 2/6 93 この場合、最低の数値は2/2と2/5の92ですが、塗りつぶしたいのは2/2のセルです。 そしてさらに2/7に84と入力したら2/2のセルの塗りつぶしは解除し、2/7のセルを塗りつぶしたいのです。 以上よろしくお願いします。

  • エクセルのセル入力に関して

    初めて投稿させて頂きます。 ご回答していただける方、よろしくお願いいたします。 エクセルのセルに数値を入力し、一度確定した後に もう一度同じセルに数値を入力した場合に 前回の数値を引き継いで加算を行うことは可能ですか? 例: セルA1に、数値5を入力。 その後、セルA1に7を入力し確定すると12と表示する方法 ご存知の方がいらっしゃいましたらご教授願います。

  • Excelであるセルに計算式を入力するとゼロになってしまいます

    初歩的な質問ですみません。 Excelであるセルの範囲の(例:A1:C1)合計をどこかのセル(例:A3)に 求めたいのですが、そこにSUM関数を入力しても結果がどうしてもゼロになって しまいます。 ただしそのセル(A3)以外の他のセル(例:B3)に入力すると正しい結果が 表示されます。 セルの書式を調べても、合計の範囲のセルと結果を出すセル両方とも数値に なっています。どうしてそのセルだけが正しく計算されないのでしょうか? セルの書式以外にも、何か特別に設定できる項目はあるのでしょうか? 教えてください。

  • エクセルで記号付きのセルを計算させたいのです

    エクセルで記号付きのセルを計算させたいのです 例えば、セルA1に φ10 と入力し、セルA2に-0.01と入力します。 セルA3に=$A$1-$A$2 とした場合、返される数値を 9.990 としたいのです。 なおA1のセルの書式設定は文字列、A2も同じく文字列、A3は数値で小数点以下3位まで表示です。 よろしくお願いします!!

  • セルに入力した数値の表示・非表示

    EXCEL2000で見積書を作成しています。 例えば、C1のセルに『A1*B1』と式を入れて A1に「1」と入力した場合、B1に任意の数値「n」を入力すると、 C1には当然「n」と表示されますが、 B1のセルに入力した「n」自体が、表示されるときと表示されないときがあります。 (A1の数値が「1」より大きい場合は、必ず表示されます) ひとつの見積書に表示と非表示が混在すると体裁が悪いので、統一したいのですが・・・。

  • EXCELでA1セルに「13ヶ月」と入力すればA2セルに「1年1ヶ月」と表示されるようにしたい

    EXCELで、「●ヶ月」を「●年●ヶ月」に変換する関数や計算式を入力したいです。 例えば、 A1セルに「13ヶ月」と入力すれば、 A2セルには「1年1カ月」と表示されるようにしたいです。 この場合、A2セルに入力するべき計算式を教えて頂けないでしょうか? ※もちろん、入力するのは上記例の「13ヶ月」だけではなく、「24ヶ月」とか「45ヶ月」とか、数値は色々です。 ※この場合あまり関係ないかもしれませんが、一応バージョンはEXCEL2007です よろしくお願いします。

  • 一つのセルに数値入力し計算し答えも同じセルに表示

    一つのセルに数値入力し計算し答えも同じセルに表示 例)A1セルに100と入力したら同じA1せるの答えが98になる計算、入力値を変えても答えが-2 された答えを同じセルに表示。

専門家に質問してみよう