![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
__月 日 件名 入 出 残高
A B C D E F
1 4 3 100 100
2 4 10 20 80
3 5 8 10 70
4 5 11 20 50
5 5 15 60 110
6 7 16 10 100
7 7 18 50 50
このような表で、例えばH1に4と入力したときはH2に4月末残高である80、
H1に6と入力したときは、6月の入出はなくてもH2に直近の5月末残高である110
というような入力がされるような式をご教示いただきたいと思います。
【条件】
・A列には4から3(月)までが入力される可能性がある。(入力がない月もある)
・B列に入力される数字は1から31(日)のうち不定。
・A列、B列ともに必ず時系列順に入力される。
・年度で管理するため、3月の次に4月が入ることはない。
No.1ベストアンサー
- 回答日時:
こんばんは!
年度表示のようなので、12の後は1・2・3 となる訳ですね。
一案です。
↓の画像のように作業用の列を1列設けてみました。
作業列G2セルに
=IF(A2="","",IF(A2<=3,A2+12,A2))
という数式を入れフィルハンドルでこれ以上データはない!というくらいまで下へコピーしておきます。
そしてH2セルに
=INDEX(F1:F1000,MAX(IF((G1:G1000<>"")*(G1:G1000<=(IF(H1<=3,H1+12,H1))),ROW(A1:A1000))))
配列数式なのでCtrl+Shift+Enterで確定!(←必須★)しています。
※ 作業列が目障りであれば遠く離れた列にするか
非表示にしておいてください。m(_ _)m
![「エクセルで指定した月末の残高を表示」の回答画像1](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/9/667667_5ac3809dee975/M.jpg)
回答ありがとうございました。
ご教示いただいた内容で値を求めることができました。
ただ、可能であれば作業列を用いない方法もご教示いただけると幸いです。
No.3
- 回答日時:
No.1です。
>可能であれば作業列を用いない方法も・・・
単純に1月~12月までの昇順のデータであれば簡単なのですが、
4月~翌年の3月までの並びだというコトなので作業列なしだと結構厄介です。
手っ取り早くVBAにしてみました。
尚、前回の画像の配置通りだとします。
画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)、H1セルにデータを入力してみてください。
Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
Dim i As Long, trgMnt As Long, myMnt As Long
With Target
If .Address = "$H$1" Then
If .Value <> "" Then
If .Value <= 3 Then
myMnt = .Value + 12
Else
myMnt = .Value
End If
For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
If Cells(i, "A") <= 3 Then
trgMnt = Cells(i, "A") + 12
Else
trgMnt = Cells(i, "A")
End If
If trgMnt <= myMnt Then
.Offset(1) = Cells(i, "F")
Exit For
End If
Next i
Else
.Offset(1).ClearContents
End If
End If
End With
End Sub '//この行まで//
とりあえずこれでお望みの動きにはなると思います。m(_ _)m
回答ありがとうございます。
やはり関数では限界があるのですね。
VBA自体は私は少しだけ知識はあるので修正程度ならできますが、担当が居なくなった場合に編集できなくなるので使用が避けられている現状です。
ただ、この回答は非常に勉強になりましたので参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Excel(エクセル) エクセルで、未来の月の数値を表示させないようにしたい 1 2022/05/07 18:58
- Visual Basic(VBA) Excelにて、指定した日の午後にファイルを開いたらsheet1に UserForm1を表示させたい 2 2022/05/31 20:53
- Excel(エクセル) エクセルの計算式を教えてください 3 2023/03/14 13:48
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Excel(エクセル) エクセルでセルの日付を和暦表示設定にしたらおかしなことに? 3 2022/05/25 11:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel関数-文字列で自動作成さ...
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
Excelで50個のセルに同じ文字を...
-
スプレッドシート、Excelでの数...
-
Microsoft Officeの中古は信用...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシートで使う数式を...
-
エクセルでの特別な文字を上に...
-
エクセル日付 文字列の関数がエ...
-
A列とB列を参照してC列に連番を...
-
エクセルVBA、別ブックへ転記す...
-
各ページの1番上の表示について
-
エクセルでセルに標準で入力さ...
-
EXCELの質問です 119から足した...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
【マクロ】アクティブセルにブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報