• ベストアンサー

同一セル内の数値を合計する方法

添付に示しますように、 同一セル内に複数の数値が 改行(Alt+Enter)しながら入力されています。 このセル内の合計値を求める方法を教えてください。 現在、セルの値をコピーして、 別のセルに張り付けることで 合計値を求めていいます。 しかし、対象となるセル数が多いため この方法では時間がかかりすぎて 困っています。 以上、よろしくお願いいたします

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

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

Excel2010での解答です。 セルA1から下に入力があって、B列に結果を出します。 セルB1に ="=" & SUBSTITUTE(A1,CHAR(10),"+") と入力して下にコピーします。 コピー結果の表示された算式をコピーして、同じ箇所(またはC列)に、形式を選択して貼り付け>値 を実行します。式を値にするわけです。 貼り付けた結果、セルは選択されているはずなので、そのまま、データタブ>区切り位置を実行し、表示されたダイアログボックスでOKします。 改行がない普通の数値入力も機能します。

10samba
質問者

お礼

合算だけなく、計算の過程も表示されることによる確認もできることから、ベストアンサーとさせていただきました。 ありがとうございました

その他の回答 (2)

回答No.2

Excel VBAマクロを使う方法と使わない方法があります。 なお、改行で複数の値の入っているセルがA1から縦に並んでいると仮定し、合計値をその左のB列のセルに入れると仮定します。 1.マクロを使う方法 まず、Alt+F11キーを押してVBAの画面を出します。 画面左の「VBAProject」と書かれている所を右クリックし、「挿入」-「標準モジュール」メニューをクリックします。 「標準モジュール」の下に「Module1」と出るのでここをクリックします。 画面中央の空欄のところに、以下のコードをコピーして貼り付けてください。 Public Function eval(src As Variant) As Variant eval = Application.Evaluate("=" & Replace(src, vbLf, "+")) End Function ワークシートに戻って、B1に「=eval(A1)」という式を入れます。 B1セルの値をB2以下のセルにコピーします。 これで全部計算されます。 2.マクロを使わない方法 注意:この方法は文字列置換したときに元データがなくなるので、操作前に必ずシートまたはブックのコピー(バックアップ)を取ってください。 まず、ワークシートの画面で、CTRL+Hキーを押して文字列置換ダイアログ画面を出します。 「検索する文字列」の欄を一度クリックして(文字入力できる状態にして)から、CTRL+Jキーを押します。 画面には特に何も表示されませんが、そのまま「置換後の文字列」の欄を一度クリックして、ここに半角の「+」を入力します。 入力できたら「すべて置換」ボタンをクリックして下さい。改行されていたセルの数字が改行のない足し算の式に変わります。 続いて、B1セルにすべて半角で「="=" & A1」と入力します。B1セルの値をデータの数だけ下にコピーして下さい。これでB列のセルはA列に書かれた数字を足し算する数式になったと思います。 コピーできたら、B列をすべて選択して右クリックし、「コピー」メニューをクリックします。 続いて、コピーした時と同じセルで右クリックし、「形式を指定して貼り付け」-「値」メニューをクリックして下さい。 見かけ上のセルの内容は変わりませんが、このセルをクリック(選択)してF2キーを押し、そのままエンターキーを押すと数式が計算結果に変わります。 エンターを押したとき、カーソルが一つ下のセルに移動する設定になっていれば、B列でF2キーとエンターキーを交互に連打していくことでどんどん計算されていきます。(件数が多いとちょっと面倒ですのでマクロのほうが簡単です)

10samba
質問者

お礼

ご回答、ありがとうございます。 マクロ実行ボタンを押さなくても答えが出てしまう回答1に驚きました。 回答2は、こんな技があるなんて、知りませんでした。 本当に勉強になります。ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

手順: B1セルを選択する(必ず行う) 数式タブの名前の定義を開始  名前 SumLeft  参照範囲 =EVALUATE(0&SUBSTITUTE(!A1,CHAR(10),"+")) と登録する 合計のセルに =SumLeft と記入、以下コピーする。

10samba
質問者

お礼

こんな計算方法があるなんて知りませんでした。 EVALUATEという関数を使いこなせるように勉強したいと思います。 本当にありがとうございました

関連するQ&A

  • エクセル一つのセルに記載してある内訳の合計について

    一つのセル(I13)に 100000 12000 5000 送料500 のように改行して、ずらずらとかいてある内訳の合計値を セル(I20)に表示したいのですが可能でしょうか。 お教えください。 改行のルールとしては 数字は半角で入力しALT+ENTERで改行しています。 --------------------------------------------------------------------------------

  • Excel セル内の改行を一括解除する方法

    Excelにてセルに文章を打ち込み、改行をしたい場合 Alt + Enter で改行ができます。 改行した文章が入力されているセルがシート上に複数あったとし、 その改行を一括(一気)に解除する事はできませんか? 1つのセルづつではなく、一括でやる方法があれば教えてください!!

  • Excel 特定のセルだけEnterでセル内改行

    タイトル通りのことなのですが、VBA等を駆使してできないか悩んでいます Excelのセル内改行は通常Alt+Enterなのですが、 使っているシートの一つのセルだけ複数行入れるような大きな所があります。 他のセルでは問題ないのですがここの入力時では、 いつもAltを押しながらでないと改行できない煩わしさが募りまして、 「このセル内に限り」Enterキーだけで改行できるようにしたいのです。 条件としてはあくまでこのセルのみで、形を崩さずにできることが望ましいです。 この入力セルは他シートから参照されているため 複数行のセルに分割したり、テキストボックスに置き換えることは難しいです 色々探した挙句、Application.MoveAfterReturn など VBAを駆使して考えてみたのですが 手詰まりになってしまいました。 何かできる方法はありますでしょうか?

  • セルに複数行の文字があるワードの表をそのままの形でエクセルにコピーする方法

    1つのセル内に改行された複数行の文字があるワードの表をエクセルにコピーすると、1行分が1セルにコピーされてしまい、1つのセルに複数行入った形でコピーできません。 1つのセルに複数行入った形とは、セル内の文字をalt+enterで改行した状態のことです。 もし、これを可能にする方法をご存じの方がおられましたら教えてください。

  • エクセルでセルの1部分を別のセルにコピーしたいのですがやり方を教えてください。

    エクセルでセルの1部分を別のセルにコピーしたいのですがやり方を教えてください。 (1)同じセルに書かれている電話番号とFAX(Alt+Enterでセルの中で改行されている)を別々のセルにしたい。 (2)○○会××グループと書かれたデータの○○会と××グループを別のセルに分けたい。 (○○や××の文字数はバラバラです。) よろしくお願い致しますm(__)m

  • 【Excel 2003】 折り返しとセル内での改行

    こんにちは。 類似の質問を見つけられなかったので投稿させていただきます。 以下の方法をご教授ください。 「折り返してセルの全体を表示される」のチェックを外した際に alt + Enter での改行(等)が無視されてしまうことを防ぎたい。 これは以下の手順で再現します。 (1) 「折り返してセルの全体を表示される」ボックスのチェックが 無い 状態でセルの列幅を越える文字数を入力します。 → この時点では、右隣のセルまで文字は侵入していますが、表示されます。 (2) 次に、(1)で書いた文字列の最後尾で alt + Enter を入力し、セル内改行を行います。 (3) そのセル内の2行目に再度セルの列幅を越える文字数を入力します。そしてそのセルの編集を終えます。(Enter押下) → すると自動的に「折り返してセルの全体を表示される」が適用されるようで(これも納得はいかないのですが。。)、強引にセルの列幅に合わせられる形で全体が表示されます。 (4) しかたないので、改めて上記で編集してきたセルの書式設定から 「折り返してセルの全体を表示される」ボックスのチェックを外します。 → すると今度は、alt + Enter の改行が無かったかのように1行で表示されます。 ※ 但し、数式表示ウィンドウ(fx)では問題なく改行された状態で表示されます。 この問題の解決方法をご教授願います。 なおこの事象は、改行を含むテキストデータのコピー&ペーストでも同様に発生します。 宜しく御願いします。

  • エクセルで数値のセルだけ合計する方法

    エクセル2000を使っております。 一列のセルの中で、\10,000のように金額が入力されたセルだけ合計する方法を教えてください。 データはこんな状態です。(A列のみ使用、¥は半角で入力) A1 あああああああ A2 \10,000 A3 (空白) A4 いいいいいいい A5 \20,000 A6 (空白) A7 ううううううう A8 \30,000 この合計、\60,000を返して欲しいです。 上記のようなデータはテキストデータから貼付けのため、「¥」や「,」は半角で入力された状態です。 また、行数は変化しますので、合計は別の列(B1やC1)に返すのが理想です。 また、金額には「-\20,000」のように負の値もあります。 以上です。 よろしくお願いします。

  • Excel2003 入力済みの数値と追加入力する数値の加算合計をひとつ

    Excel2003 入力済みの数値と追加入力する数値の加算合計をひとつのセルに表示する方法 1,既に数値が入力してある特定のセルにαという数値を入力すると、そのセルの数値が 入力済の数値とαの加算合計の表示になるにはどのような書式設定をしたらよいでしょうか? (例):(1)A1セルには既に2という数値が入力されている。    (2)A1セルに新たに1という数値を入力する。    (3)Enterで確定するとA1セルの数値が3になる。 2,さらに、同一行の隣接するセル約50個にも同じ書式を設定したいのですが、 どのような操作をすれば効率良く設定できるでしょうか? 使用しているOSは WindowsXP、Excelは 2003です。 たいへん初歩的な質問だとは思いますが、何卒宜しくお願い致します。

  • エクセルで,複数行のままコピーしたい

    エクセルで,ある1つのセル(例えばA1)に,複数行になっている文字列があります(Alt+Enterにより,セル内で改行したものです). 別のセル(例えばB2)に「=A1」と入力すると,B2にはA1にある文字列が表示されるのですが,改行が消えてしまい,1行で表示されてしまいます. 改行を消さずにコピーする方法はないでしょうか.教えてください.エクセルのバージョンは2010です. よろしくお願いします.

  • 縦幅・横幅・フォントサイズを固定値にしたいセルへの入力で、セルから文字

    縦幅・横幅・フォントサイズを固定値にしたいセルへの入力で、セルから文字がはみ出ない様にしたいと考えています。 当初、セルに入力されたバイト数をカウントする事ではみ出た事を把握しようと考えたのですが、Alt+Enterキーを押してのセル内改行も含む為に、セル内のバイト数では、セルをはみでる事を把握しきれません。 そこで、LEN関数を用いてセル内の行数が一定値を超えた場合を把握しようと考えました。 しかしながら、Alt+Enterキーを押してのセル内改行は、CHAR(10)で拾えるのですが、セルの書式設定で「自動で折り返して全体を表示する」にチェックを入れている為、「自動で折り返し」→「改行」されるケースもあります。 この、自動で折り返して改行された場合の「改行」をカウントする方法を御教授頂きたく、質問させて頂きました。 よろしくお願い致します。