[[20031110231121]] 『売掛金の集計について』(ちょーハイパー初心者はる) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『売掛金の集計について』(ちょーハイパー初心者はる)

お世話になります。
期首9月1日〜期末8月31日の期間の集計で、
A1セルに集計したい月を入れると、
B列セルに入力された月を検索して
C列の金額を集計したいのです。
B列に入力された値は、セルの書式設定表示形式は標準で、9月であれば、9と入力されています。
たとえば、A1セルに7と入れると
B列の7未満の金額を集計したいのですが、
7月未満ということは、6月からの過去分で期首の9月までの集計にしたいのです。
B列の表示形式を日付表示にして、月のみの表示にできますか?ユーザー定義でm"月"にしましたら7は1月と表示されています。????
単純に月のみの入力にしたいセルです。
9と入力すると2003年9月で8月と入力すると2004年8月という
認識をもったセルに設定はできるのでしょうか?


 =IF(A1>=9,DATE(2003,A1,1),DATE(2004,A1,1))ですか?(ケン)

 最後に書いてある
 >9と入力すると2003年9月で8月と入力すると2004年8月という認識を
 これはどう考えても無理ではないでしょうか。未来に渡って入力し続けるのでしょうから。。

 簡単な代わりの案として
 日付を入力してるのでしょうからそれを B列に =MONTH で出力させる

 =IF(DATE(YEAR(入力最終シリアル値),MONTH(同),DAY(同))-350>=B1,"",MONTH(B1))

 入力最終シリアル値は適当な固定セルに =MAX で出力させておく。

 あとは

 =SUMIF   で =MONTH 未満の金額を集計

 強引ですし、期末8月には間違いないかの確認と
 1 〜 12 だけの検索値判断で通年の作業をさせるのですから 
 [式から数値へ固定]の作業も必要かもしれないですね。
 多分、駄目でしょうから参考程度に考えて下さい。私の回答は無茶苦茶が多いですし。。   (jun53)

ボクも入れて下さい。
 「すがやん」の枕詞拝借。

 >私の回答は無茶苦茶が多いですし
 なかなかどうして、結構感謝の言葉を浴びとるくせに、この、このぉ。

 コレは日付に変えてもたらパソコンが拾うてくれまへんさかい、いままで通りのデータ
 で作業して下さい。
 シートモジュールと標準モジュールにそれぞれコピペしておくんなはれ。
 後はA1に数字をタイプするだけです、はい。
    (弥太郎)

 'シート1に
 Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Address = "$A$1" Then
        syukei
    End If
    Application.EnableEvents = True
 End Sub

 '-------------
 '標準モジュールに
 Sub syukei()
    Dim row_max As Long, i As Long
    row_max = Cells(, 2).End(xlDown).Row
    For i = row_max To 1 Step -1
        If Cells(1, 1) > Cells(i, 2) Or Cells(1, 1) + 8 < Cells(i, 2) Then
            Cells(1, 4) = Application.Sum(Range(Cells(1, 3), Cells(i, 3)))
            Exit Sub
        End If
    Next
 End Sub
 


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.