[[20020802140740]] 『日計表:金額を入力すると自動計算されていく』(さっちん) ページの最後に飛ぶ

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

 

『日計表:金額を入力すると自動計算されていく』(さっちん)

日計表を作るのに8/1の欄に伝票の金額を入力すると自動的に計算されていく数式とかありませんか。

 8/1 伝票 50000円  → 日計表 8/1 330000  ← ここの枠に1枚、2枚と伝票の

 8/1 伝票 200000円                 金額を入力したら自動的に加算

 8/1 伝票 80000円                  され、合計金額がでる方法。


こんにちは、                                     

入力するセルは決まったセル一つになるのでしょうか?

あと、表の形式をもう少し詳しく教えていただくと、解答も出やすいかもしれません。

(尋)


 仮に伝票が10枚であれば、F2に=SUM(IF(A2:A11=E2,C2:C11,0))の式を入力し、CTRL+Sift+Enterで確定します。

E12に日付を入力し、F2の式をコピーすれば、8月2日の合計金額が表示されます。

    A      B         C        D        E        F

 1 日付	伝票	金額		日付	合計金額

 2 8月1日	伝票	50,000		8月1日	380,000 ← {=SUM(IF(A2:A11=E2,C2:C11,0))}

 3 8月1日	伝票	200,000			

 4 8月1日	伝票	80,000			

 5 8月1日	伝票	50,000			

 6 8月1日	伝票				

 7 8月1日	伝票				

 8 8月1日	伝票				

 9 8月1日	伝票				

10 8月1日 伝票

11 8月1日 伝票

12 8月2日 伝票 25,000 8月2日 25,000←F2の式をコピー {=SUM(IF(A12:A21=$E12,C12:C21,0))}

 (シニア)


こんばんは、                                     

シニアさんのF2の式だとA2のみを参照することになるのではないでしょうか?       Ctrl+Shift+Enterで配列にして入力をしないと正確な金額にならないとおもいますが・・・ 

 

失礼いたしました。  (あつ)


 あつさん有難う!おっしゃる通り、式入力後Ctrl+Shift+Enterで確定して行列数式する説明を忘れました。

 年は取りたくないですね70歳にもなると、皆さんのフォローが必要になります。

今後共宜しくお願いします。

 (シニア)


『日計表で自動計算』(さっちん)

式を教えてもらったのですが、A、B、C、D、は、入力しないです。

       矢野         柳         松島

	売 上	仕 入	売 上	仕 入	売 上	仕 入

1日  ここ

2日

3日

4日

5日

上記の表で、1日の枠一つ、2日の枠一つ、3日の枠一つ、で伝票の金額をそこのセルに金額を入れていくという形式です。ですから、伝票が何枚あっていくらというのは、表には入力しません。手元に伝票を置いて表に金額をどんどん入れていってセル1つにその日の合計金額を入力します。今は教えてもらったような感じでしているか、電卓で計算して合計を入れてきましたが,それでは、追いつきません。

(さっちん)


 手元に伝票を置いて表に金額をどんどん入れていってセル1つにその日の合計金額を入力します。

の意味は、担当者別に用紙の表に書き込んで、その日の合計金額を入力するのですか?

   A       B       C         D        E         F       G         H        I       

 1       矢野		柳		松島		日集計  	

 2	売 上	仕 入	売 上	仕 入	売 上	仕 入	売 上	仕 入

 31日	500,000		2,000,000		800,000		3,300,000	0

 42日                                                            ↑ =SUM(B3,D3,F3) 								

 53日								

 64日								

 75日

矢野、柳、松島担当者の各売上高の集計はH3セルに=SUM(B3,D3,F3) と入力します。

この式をI3セルにコピーすると仕入合計金額が =SUM(C3,E3,G3)で求められます。

H3:I3を選択して下方複写すれば、日々の集計ができます。

未入力であれば、式の結果は0になります。

0を非表示にするには、ツールメニュー『オプション』『表示』で「ゼロ値」をオフにします。

この説明は質問の意図と違っているかもしれません。

他にデータメニューのオートフィルタや集計の機能などを利用して、

日集計や月集計、担当者別集計などを行う表にできます。

 (シニア)


『日計表』(さっちん)

先日、回答戴いたのですが、質問とは少し違っていました。説明がうまく出来なくて申し訳ないです。この間のは営業者全員の合計を日集計にしてありました。全員の日集計は必要ないです。

担当者別でその日ごとの合計です。セル1つを使って計算していく方法で、1日、セル1つ、2日、セル1つと、他のセルは使っていません。

  A     B

      矢野

1 1日  200,000 

2  2日  300,000

      ↑

上記のように、B1のセルの所に金額を入力していくと最初の数に足されていくような数式。だから、B2のセルも同じく金額を入力するだけでどんどん加算されていくというような計算。

申し訳ないですが、また回答お願い致します。


こちら事務局です。2002/08/06 10:01の投稿をこちらに移動しました。

(kazu)


 同一セルに加算する式を入力すれば循環参照になります。そのセルに数値入力すれば、式と数値が入れ替わってしまいます。

従って、質問の同一セルに加算することは不可能だと思います。

どこかのセルに入力して、その入力値をコピーし、目的のセルに【形式を選択して貼り付け】で

【加算】を選択して貼り付ければ、加算されます。

この作業を繰り返し行うのは大変です。

私はマクロは初歩の段階ですので、さっちんさんのご希望にそえるマクロ操作方法ご存知の方

お助け願います。

 (シニア)


こんばんは、

 B1B2のセルとして

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim PrevNum As Variant

    Dim AddedNum As Variant

    Dim NextCell As String

    Dim r As Range

    On Error Resume Next

    If Target.Cells.Count = 1 Then

        Select Case Target.Address(False, False)

            Case "B1", "B2"

                AddedNum = Target.Value

                If Len(AddedNum) > 0 Then

                    NextCell = ActiveCell.Address

                    Application.EnableEvents = False

                    Application.Undo

                    PrevNum = Target.Value

                    Target.Value = PrevNum + AddedNum

                    Range(NextCell).Activate

                End If

        End Select

    Else

        For Each r In Target.Cells

            Select Case r.Address(False, False)

                Case "A1", "A2"

                    MsgBox r.Address & "を含む複数セルの値の" & vbCrLf & _

                           "一括変更はできません", vbCritical

                    Application.EnableEvents = False

                    Application.Undo

                    Exit For

            End Select

        Next

    End If

    Application.EnableEvents = True

End Sub

 シートモジュールにコピペしてください。

 入力したデータが残らないのでこのような仕様は考えものと思いますが・・


間違えました。

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim PrevNum As Variant

    Dim AddedNum As Variant

    Dim NextCell As String

    Dim r As Range

    On Error Resume Next

    If Target.Cells.Count = 1 Then

        Select Case Target.Address(False, False)

            Case "B1", "B2"

                AddedNum = Target.Value

                If Len(AddedNum) > 0 Then

                    NextCell = ActiveCell.Address

                    Application.EnableEvents = False

                    Application.Undo

                    PrevNum = Target.Value

                    Target.Value = PrevNum + AddedNum

                    Range(NextCell).Activate

                End If

        End Select

    Else

        For Each r In Target.Cells

            Select Case r.Address(False, False)

                Case "B1", "B2"

                    MsgBox r.Address & "を含む複数セルの値の" & vbCrLf & _

                           "一括変更はできません", vbCritical

                    Application.EnableEvents = False

                    Application.Undo

                    Exit For

            End Select

        Next

    End If

    Application.EnableEvents = True

End Sub

 こちらをコピーして貼り付けてください。


 早速マクロ案内頂きまして有難う御座います。

驚きました!Case Target.Address、 Case r.Addressを指定することによって各セルに入力加算され、

ツールメニュー【オプション】【編集】で「入力後にセルを移動する」をオフにすると、そのセルで連続加算でき便利ですね

コメントにもありましたが、「入力したデータが残らない、誤入力の確認ができない」問題点を含みますが、

さっちんさんの願が叶えられました。重ねて御礼申し上げます。

 (シニア)


コメント返信:

[ 一覧(最新更新順) ]


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