- ベストアンサー
【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]の計算結果が表示されるように したいのですが。。。 関数でもマクロでも構いません。マクロでしたら、初心者ですので 参考までに一例を示していただけると嬉しいです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは~♪ K1: =IF(E1="月 計",SUMIF(E$1:$E1,"月 計",$H$1:H1)-SUMIF (E$1:$E1,"月 計",$I$1:I1),"") 下にコピーしてください。。。 。。。。Rinでした~♪♪
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
rx-z5815さん、こんにちは。 merlionXXです。 > マクロ名の一覧にこのマクロがありませんでした。 これはE列に "月計" という文字列が入力されると同時に自動実行するマクロですから一覧には表示されません。
お礼
おぉ~!すごいです!! 今まで…といっても数えるほどですが、今回のように自動実行するマクロを使ったことがなかったので、「Alt」+「F8」→マクロの実行をしてしまいました。 またひとつ勉強になりました。ありがとうございました<(_ _)>
- merlionXX
- ベストアンサー率48% (1930/4007)
では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キーでワークシートへもどります。 どうでしょうか?
補足
回答ありがとうございます。 教えていただいたマクロをコピペして実行しようとしましたが マクロ名の一覧にこのマクロがありませんでした。 確かにコードは書いてあるのに、なぜなんでしょう? もし、おわかりになれば、教えてください。
お礼
SUMIFをこんなふうに使えばいいのですね。 実際に試してみたら、うまくいきました。 ありがとうございました!