• ベストアンサー

前月の数字を残しておきたい。

 A  B 1月 500    1月  500            2月            3月            ・            ・          12月           累計  500 A1に入力されてる月の欄にB1の数字を入れたい。 私の作った関数(IF)ではA1を2月にすると2月のランに数字は入るが1月の欄の数字が消えてしまう。 前の月の数字を残しておくにはどうしたらいいですか。 教えてください。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

参照元の値が変わっても、参照先が変化しないようにするのは関数では無理だと思います。 VBAでのサンプルを提示します。 試す場合は、新規ブックで行ってください。 また、セキュリティレベルが「中」以下の状態でマクロ有効でExcelを起動しないと動きません。 1)新規ブックの Sheet1 D1:D12 に "文字列" で 1月~12月 と入力 2)シート名タブを右クリックして「コードの表示」 3)出てきたVisualBasicEditor画面(以下、VBE画面)にコードをコピペ 4)VBE画面を閉じる 5)A1 又は B1 に値を入れる Private Sub Worksheet_Change(ByVal Target As Range) Dim fr  If Not Application.Intersect(Target, Me.Range("A1"), Me.Range("B1")) Is Nothing Then Exit Sub  Set fr = Me.Columns(4).Find(What:=Me.Range("A1").Text, LookAt:=xlWhole)  On Error Resume Next  Application.EnableEvents = False   If Not fr Is Nothing Then fr.Offset(0, 1).Value = Me.Range("B1").Value  Application.EnableEvents = True End Sub

yotarou001
質問者

お礼

出来ました。本当にありがとう御座います。

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

入力するセルが、A1とB1固定であれば、数式で求めると2月にすれば 1月は消えてしまうでしょう。 セルに値として入れるのならば、マクロかな? と思います。(思考不足な意見ですが)

yotarou001
質問者

お礼

早速ありがとう御座います。 マクロはわかりません。

回答No.1

まず質問者さんの作った関数を公開してください。 > 2月のランに数字は入るが1月の欄の数字が消えてしまう。 きわめて独創的で興味があります。

yotarou001
質問者

補足

早速ありがとうござます。 関数はあまりよくわからなくても 以下のIF文ではブランクのなるのはわかりますので 恥ずかしくて公開しなかったのです。 =IF($A$1=E5,$B$1,"") いい方法があったらお教え下さい。

関連するQ&A