• ベストアンサー

【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

  • 【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 12行 月 計      900        300      1100 13行 累 計      1500        400      :      : というふうに金額が入力されているとき、K列の差引残高に E列に“月 計”と入力されたら、 [直前の月 計の差引残高セル]-[借方金額]-[貸方金額]という 数式を入れたいのですが、どんな関数を使えばできますか? 上記の例でいくと、 K12セルに[=K5+H12-I12]の計算結果が表示されるように したいのですが。。。 よろしくお願いします。

  • 【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]の計算結果が表示されるように したいのですが。。。 よろしくお願いします。

  • IF・AND関数で計算

    Excel2003です 会計処理の第一ページ目 日々の出入金などデータの入力シートです。 A列:日付 B列:金額 C列:適用借方 D列:適用貸方 E列:借方コード F列:貸方コード G列:借方科目 H列:貸方科目 I列:差引残高 となっています。 コードの11は現金(手元現金) 12から14までが銀行です。 (この11から14は資産勘定の現金の部類に入ります) =IF(E6="","",IF(AND(E6>=11,E6<=14),I5+B6,IF(AND(F6>=11,F6<=14),I5-B6,I5))) このIF・AND関数で他の科目との差引残高は正しく表示されるんですが 銀行から手元資金として現金を下ろした場合(また逆の場合もあります)  E列に11 F列に12・13・14がきたとき差引残高が増えてしまいます。 資産勘定の現金は(銀行から手元現金へ移動しただけ)変わりません。   E列に11 F列に12・13・14がきたとき(銀行から手元資金を下ろした時) また逆の場合 余裕の出来た手元現金を銀行へ預ける場合 差引残高が変わらないようするには? よろしくお願いします jintaro1118

  • 【Excel】正しい計算結果が得られない

    Excel2003を使用しています。 B列は日付、C列は摘要欄、E列・F列は金額データが入力されています。 C列に『n月計』と入力された行のE列・F列に下記の数式(E269セル、F269セルの場合を記載)をマクロボタンをクリックすることにより、入力できるようになっています。 E列: =SUMPRODUCT((MONTH($B$4:$B268)=VALUE(LEFT($C269,LEN($C269)-2)))*(E$4:E268)) F列: =SUMPRODUCT((MONTH($B$4:$B268)=VALUE(LEFT($C269,LEN($C269)-2)))*(F$4:F268)) 4月計~12月計までは、問題なく上記の数式で集計できていたのですが、1月計を同様の操作で数式を入力したところ、正しい集計結果を得ることができません。 以前は、単純にSUM関数を使用して、その月のデータを都度、手作業で範囲選択していましたが、同様のシートが40枚ほどあるため、マクロボタンをクリックすることで、集計の数式が入力できればと思い、作成したのですが…。 どういった原因が考えられますでしょうか? よろしくお願いします。

  • 【Excel VBA】ThisWorkbook モジュールのマクロ

    Excel2003を使用しています。 39枚のシートから成るBook1のThisWorkbook モジュールに、C列に“○月計”と入力されたら、その行のE列、F列、G列へ数式を入力するコードを書いています。 現在は、それぞれのシート(39枚のシートのうち3枚を除く36枚)のC列最終行から2行下のセルへ“○月計”と手入力していますが、マクロで“○月計”と入力されるようにすれば、ThisWorkbook モジュールに書いているコードも実行されて、数式の入力までマクロで処理できるのかな?と思い、試しに、36枚それぞれシートのC列最終行から2行下のセルへ“○月計”と入力されるようコードを書いてみました。 …が、そうではないのか、それぞれのシートのC列最終行から2行下のセルへ“○月計”と入力されるものの、E列、F列、G列へ数式は入力されません。 せっかくなので、できることなら数式の入力までマクロで処理したいのですが、どのようにしたらThisWorkbook モジュールに書いているコードまで実行されるのでしょうか? よろしくお願いします。

  • 【Excel】ある文字列を含んだ行の数値をとりだしたい

    Excel2003を使用しています。       A列     B列      C列     D列   1行  2行  ○月計    100      50      50  3行  4行  5行  ×月計    200      100     100 A列に「月計」を含んだセルがあったら、そのD列は[=B-C]としたいのですが どうすればいいでしょうか? 例えば、上記の場合だとA2セルに「○月計」と入っているので、D2セルには[=B2-C2]の計算結果を 表示させたいのです。 いろいろやってみましたが、うまくいきません。 よろしくお願いします。

  • エクセルの計算機能の使い方

    下記の出納帳の計算式を教えてください。どの関数を使えば良いのか解かりません。差引残高と収支合計が収入金額と支払金額を入力した時点で計算が行われる関数式が知りたいのですが。よろしくお願いします。 エクセルの表が表示できないので文字だけにさせていただきました。わかりにくいところはすみません。 摘      要 収入金額 支払金額 差引残高 14年度繰越金           収 支 合 計

  • 【Excel2010】IF関数の使い方

    入力用セルの金額がプラスの時は借方欄に、マイナスの時は貸方欄に金額が入るようにしてあります。 さらに「借方」欄に金額が入ったら区分欄に「借方」、「貸方」欄に金額が入ったら区分欄に「貸方」を表示させたいのです。  セルA2・・・=IF(AND(B2="",C2=""),"",IF(C2>0,"貸方","借方"))  セルB2・・・=IF(E2>0,E2,"")  セルC2・・・=IF(E2<0,E2*-1,"") この数式ではすべて「貸方」になってしまいます。 入力用の金額から直接貸借区分を設定できるのは存じていますが、今回は「借方」「貸方」欄から貸借区分を判別するようにしたいのです。 どのような数式にすればよろしいでしょうか?

  • 買掛金・未払金一覧表を作りたい。

    Win.xpsp2 Office Personal2003、質問タイトルどうりの表を作ろうと思います。列番号AからALまで使います。Aは取引先名、Bは前期繰越。一ヵ月分を、C貸方(発生)その月の購入金額、D借方(支払)その月の支払金額、E繰越(残高)とします。残りの11ヶ月分も列毎に貸方、借方、繰越を繰り返す。2007年12月末の残高をBとすると2008年1月はCDEとなり2008年12月はAJAKALになるとおもいます。A列の取引先は約50件。前期繰越プラス貸方マイナス借方イコール繰越。お聞きしたいのは貸方と借方を入力すれ繰越がでる関数で12ヶ月分の繰越まで連続する関数。1シートで描いておりますが使いやすければ複数のシートでも結構です。よろしくお願いします。

  • 【Excel】ある条件を満たすまでの件数を調べるには?

    Excel2003を使用しています。 ある書類作成で、合計金額の70%に達するまでには、何件目まで(何行目まで)記載すればよいかを調べるには、どのようにしたらよいでしょうか? データは、A列~K列の6行目以下に入力されています。 金額はG列に、降順に並んでいて、合計金額をH1セル、H1セルの70%の数値をH2セルに出しています。 A列には、6行目以下に連番がふってあり(A6=1,A7=2,A8=3,…)、H2セルの値(合計金額の70%)を超えた行のA列に入力されている値を取得できないかなと思っているのですが…。 うまく説明できなくて申し訳ないのですが、よろしくお願いします。

専門家に質問してみよう