• ベストアンサー

【Excel】直前のある特定の文字を拾って計算したい

Excel2003を使用しています。   E列→摘要欄 H列→借方金額 I列→貸方金額 K列→差引残高  1行  あ                   100  2行  い      100  3行  う       500  4行  5行 月 計     600           100        500  6行  7行  8行  か                    300  9行  き       400 10行   く       500 11行 12行 月 計     900            300        1100 13行 累 計    1500            400       :       : というふうに金額が入力されているとき、K列の差引残高に E列に“月 計”と入力されたら、 [直前の月 計の差引残高セル]+[借方金額]-[貸方金額]という 数式を入れたいのですが、どんな関数を使えばできますか? 上記の例でいくと、 K12セルに[=K5+H12-I12]の計算結果が表示されるように したいのですが。。。 関数でもマクロでも構いません。マクロでしたら、初心者ですので 参考までに一例を示していただけると嬉しいです。 よろしくお願いします。

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

  • ベストアンサー
  • rin01
  • ベストアンサー率43% (33/76)
回答No.1

こんにちは~♪ K1: =IF(E1="月 計",SUMIF(E$1:$E1,"月 計",$H$1:H1)-SUMIF (E$1:$E1,"月 計",$I$1:I1),"") 下にコピーしてください。。。 。。。。Rinでした~♪♪

rx-z5815
質問者

お礼

SUMIFをこんなふうに使えばいいのですね。 実際に試してみたら、うまくいきました。 ありがとうございました!

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

rx-z5815さん、こんにちは。 merlionXXです。 > マクロ名の一覧にこのマクロがありませんでした。 これはE列に "月計" という文字列が入力されると同時に自動実行するマクロですから一覧には表示されません。

rx-z5815
質問者

お礼

おぉ~!すごいです!! 今まで…といっても数えるほどですが、今回のように自動実行するマクロを使ったことがなかったので、「Alt」+「F8」→マクロの実行をしてしまいました。 またひとつ勉強になりました。ありがとうございました<(_ _)>

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

ではVBA(マクロ)でやってみます。 以下の手順でやってみてください。 1.そのシートのシートタブを右クリックし、「コードの表示」を選択 2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ '*****ここからコピペ Private Sub Worksheet_Change(ByVal Target As Range) Dim S As String Dim r As Integer, rr As Integer If Intersect(Target, Range("E:E")) Is Nothing Then Exit Sub S = Trim(Target.Value) If Left(S, 1) = "月" And Right(S, 1) = "計" Then r = Target.Row rr = Cells(r, "K").End(xlUp).Row Cells(r, "K").FormulaR1C1 = "=R[" & rr - r & "]C+RC[-3]-RC[-2]" End If End Sub '*****ここまでコピペ 3.Alt+F11キーでワークシートへもどります。 どうでしょうか?

rx-z5815
質問者

補足

回答ありがとうございます。 教えていただいたマクロをコピペして実行しようとしましたが マクロ名の一覧にこのマクロがありませんでした。 確かにコードは書いてあるのに、なぜなんでしょう? もし、おわかりになれば、教えてください。

関連するQ&A