• 締切済み

特殊な引き算(エクセル2010)

エクセル2010です。 知識不足で 教えていただきたいのですが B6:B30 まで 表示形式 数値で 赤1234 となっております。 入金を マイナス数値で入力 出金を プラス数値で入力 B6:B30 の 入力で  例えば B6~↓に 以下の数値が入力されているとしますと 100 文字色赤 100 10000 文字色赤 10000 5000 文字色赤 (200)表示形式を 赤()に変えたもの などで ランダムに数値を入力しております。 B2に -数値の合計(文字色赤の合計) B3に 整数値の合計 B4に B2-B3の数式 B5に B4の計算結果から (1234)と 赤()付に変更している数値を引いた数値 ※ 表示形式を 赤()に変えたものは 入金扱いにするが計算からは除外したいために   B5で再計算させたい。 上の例では B2 15100 B3 10100 文字色赤 B4 5000 B5 5000-(200)となるので4800  と 結果を反映させたいのですが、 どういった関数 数式が考えられますでしょうか? よろしくお願いしたします。

  • mh1211
  • お礼率70% (309/441)

みんなの回答

  • mar00
  • ベストアンサー率36% (158/430)
回答No.3

関数、数式だと(200)を除外するのは入力したままだと無理ではないかと思います。 マクロでやってみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("B6:B31")) Is Nothing Then Exit Sub Range("B2:B5").ClearContents For i = 6 To 30 If Left(Range("B" & i).Text, 1) = "(" Then Range("B5") = Range("B5") + Range("B" & i) End If Select Case Range("B" & i) Case Is < 0 Range("B2") = Range("B2") + Range("B" & i) * -1 Case Is > 0 Range("B3") = Range("B3") + Range("B" & i) * -1 End Select Next i Range("B2") = Range("B2") + Range("B5") Range("B4") = Range("B2") + Range("B3") Range("B5") = Range("B4") + Range("B5") End Sub

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 外しているかもしれませんが・・・ B6~B30内の(赤文字表示)というのはセルの表示形式でマイナス値が「赤」になっているという前提です。 (200)の部分も値はマイナスで表示形式だけを変えているものとします。 セルの表示形式は関数では判断できないと思いますので、VBAでの一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてB6~B30のデータを色々変えてみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Intersect(Target, Range("B6:B30")) Is Nothing Then Exit Sub Dim i As Long Dim vl1, vl2, vl3 As Variant For i = 6 To 30 If Cells(i, 2).NumberFormatLocal <> "0_);[赤](0)" And Cells(i, 2) < 0 Then vl1 = vl1 + Cells(i, 2) ElseIf Cells(i, 2) > 0 Then vl2 = vl2 + Cells(i, 2) Else vl3 = vl3 + Cells(i, 2) End If Next i Range("B2") = Abs(vl1) With Range("B3") .Value = vl2 .Font.ColorIndex = 3 End With Range("B4") = Abs(Range("B2")) - Abs(Range("B3")) Range("B5") = Range("B4") - Abs(vl3) End Sub 'この行まで ※ B2・B3セルは関数だけでも対応できると思いますが、ついでにVBAでやってしまいました。 ※ 質問文内の「赤文字」部分はマイナス値だとして判断していますので 的外れならごめんなさいね。m(_ _)m

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

「赤文字」を使っているのでプラスとマイナスの勘違いがある様子にも見えますが,ご相談はキチンと正しく考えて間違えずに書いてあるものと仮定します。 「赤(1234)」を計算から除外することはできないので,今のままでは計算する方法はありません。 簡単にできることとしては,書式で区別するのを諦めて ’(200) などのように(この例では「文字列」で記入することで)区別できる記入のしかたをします。 以下はその前提で。 B2:B6には「赤1234」の設定が施してある B2: =-SUMIF(B6:B30,"<0") B3:赤文字 =-SUMIF(B6:B30,">0") B4: =-SUM(B6:B30) B5: =SUMPRODUCT(--B6:B30)-2*SUM(B6:B30)

関連するQ&A

  • excel 関数 引き算

    excel で引き算後、合計を求める計算式を教えてください。 A1に7.5 B1に5.5を入力してあります。 C1に合計値を求めたい。 ただ、 基本数値「8」から7.5 5.5を引き合計を求めたいです。 答え(合計値)(C1)は「3」になるような計算式です。         A1=0.5 B1=2.5 になるのでC1のセル計算値は「3」になります。 実際はA1~AH1まで入力されています。 途中セルには「/」とか「文字」も入力されています。 数値のみを計算したいです。 どなたかよろしくお願いします

  • Excelでの引き算や足し算でマイナス値やゼロ値を計算させない方法はありますか?

    電気料金が気になり 毎日の数値を記録しようと思い 数値を計算させようと思ったのですがうまくいきません。 どうすれば良いのでしょうか 具体的には下記のようなことになってしまいます。 A1 10000  B1 (A2-A1)→計算数値(セル表示数値)は10 A2 10010   B2 ↓以下同じ計算 A3 10020   B3 A4 10030   B4 A5 10040   B5 A6 (未入力)  B6   -10040 Aの列に数値を毎日入力となるのですが こうすると未入力日(当日もしくは翌日)は 空白となってしまうので上記例で言いますと A6-A5とするとマイナスになってしまいます。 これをB列セルのユーザー定義で「#;!0;0」とし マイナス値をゼロにする方法にするときちんとゼロには なるのですが 今度は合計値の計算でゼロになってしまいます。 B列の最下行?となる部分、B32セルにB1からB31までを足し算の 関数を設定するとB32セルの表示数値はゼロ。 ユーザー定義でゼロを表示しない方法を使うと 今度は合計値が マイナス表示されてしまいます。 ご存じの方にとっては こんなことで悩むこと自体がおかしい くらい簡単なことなのかも知れませんが いろいろ試した結果 未だにうまくいきません どうかよろしくお願い致します。

  • エクセルで数式が働かなくなりますが?

    エクセルで数式を正しく入力して(例:=a1*b5+a2*b6+a3*b7)結果が反映されません。前回は正しく働いていた表で、あるセルの数値を変更すると、その変更を反映した計算結果が表示されるはずですよね。書式→セル→表示形式で確認するとちゃんと「数値」になっているのですが。これはどういうことでしょうか、解決方法を教えてください。

  • 逆引き?参照セルを探したい(エクセル

    月ごとの数値が入力されたものがあります。 ある月の数値を文字列に置き換えたいのですが、 その数値が平均や合計に使われていた場合、結果に影響が及びます。 その数値がどこかの(どこの)計算、数式に参照されているか調べる方法がありますか?

  • エクセルの出納帳の残高表示

      A   B    C  入金 出金 残高 1 2 3 レイアウトはこんな感じです。 C2に残高を出すとしたら数式は「=C1+A2-B2」にして、C3以降の残高は相対参照で出してます。 これを、入金や出金の列に数字を入力すると自動的に残高が計算されてそれが残高の列に表示されるように設定することが可能の様ですが、どうしてもその方法がわからないのです。ぜひ教えてください!!

  • エクセルのセル内に文字と計算結果の表示

    エクセルの1つのセル内に文字と計算結果の両方を表示させる方法を教えて下さい。 例えば、セルのA1に数値10を入れて、B1に数値5を入れてあったとします。 で、セルのC1にA1とB1の合計を「合計 15」みたいな形で、文字と計算結果の両方をC1のセル内に表示させたいのですが。 ただ合計の数字のみを表示させるなら、=SUM(A1+B1)で良いわけですが、この数値の前に”合計”という文字を入れたいのです。 宜しくお願いします。

  • エクセルで月毎の集計

    エクセルで銀行口座の管理をしようとしています。 A列に日付、B列に出金、C列に入金、E列に残高があります。(基本的に通帳の並びと同じです。) で、月ごとの出金、入金の管理をしたいと考えております。 各列ともにどんどん下の行に出金/入金を入力していくつもりなので、A列のとある月だけの出金、入金を抽出合計できたらいいなぁと思っています。何かよい方法(数式?)をご教示頂きたくよろしくお願いします。

  • EXCEL 数式が入った空白セルを数える

    毎度お世話になっています。 質問の内容ですが、例えば下記のようなシートがあるとします。 セルB1、セルC1、セルD1:手入力セル セルA1:数式「=IF(B1="","",B1+C1)」 セルA2:文字列 セルA3:数式「=IF(D1="","",D1*0.1)」 セルA4:文字列 セルA5:A1+A3の計算結果を表示 (※なお、セルA2、A4は数値が入らない) というような場合において、 ●セルB1、C1、D1になにも入力されていない場合、セルA5が空白となる。 ●セルB1、C1にのみ数値が入力されている場合、セルA5の計算結果がセルA1の値のみ。 ●セルD1にのみ数値が入力されている場合も上記と同様に計算結果が表示される。 以上の条件を満たす数式をセルA5に入力したいのですが、 COUNTBLANKは数式が入っている場合には使えず、COUNTAの場合だとセルA1、A3のどちらにも数値が入った場合に表示される、といった数式になります。 IFをいくつも使えば可能とは思いますが、もう少し単純に数式を作れたらと思い質問をさせて頂きました。 よろしければ御回答宜しくお願い致します。 (内容を訂正したため、いったん質問を削除しました。もし御回答中の方が居ましたら申し訳ありませんでした。)

  • エクセル<引き算がおかしいです

    お世話になります。 エクセル2003で、仕事の入金・出金の計算をしています。 いつものとおり、セルに「=J254-I255」といった具合に入力したところ、「0」になるはずが「-1」になってしまいました。 50,000-50,000=-1といった感じです。 数字が間違っているのかと思い何度も確認しましたが、 間違っていませんでした。 試しに「1」小さい数字でやってみると、きちんと合っていますが、 「1」大きい数でやってみると、「-2」になります。 50,000-49,999=1  50,000-50,001=-2 ←本来なら「-1」です。 特にどこかいじったわけでもないので、混乱しています。 ご回答をよろしくお願いいたします。

  • エクセルでメッセージの表示について

    エクセルで教えてください。 セル(A1)と(B1)に数値を入力すると あらかじめ数式を入力してあるセル (A2)、(B2)に数式結果が表示するようにしています。 その数式結果が(A2)>(B2)の場合 『数値の確認必要』とメッセージが出るようにしたいのですが、 可能でしょうか? 教えていただけたらと思います。

専門家に質問してみよう