[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『売上予算を曜日で自動に計算したい』(としお)
売上予算9000000
この合計をその月で日割り予算にしたいのですが
合計を見ながら適当に数字を合わせれば良いのですが
これを曜日を考慮して自動化したいのですが
良いアイデア無いでしょうか?
ボタン1つで簡単に日割り予算をたててしまう感じです
そんなものは合計をマイナスして最後に帳尻合われろと
言われてしまいますがその辺は置いといてもらって
アイデアありましたら教えてください
よろしくお願いします
< 使用 Excel:Excel2007、使用 OS:WindowsVista >
ちょっと質問させてください。
土•日曜日と、平日では...平均的な売上って差があるんですか? 上半期、下半期みたいな目標売上とかも設定されますか? (あみな) 2022/01/24(月) 22:44
情報を ありがとうございます。
その情報があった方が、考えやすいと思ったからです。 平日に50万とか無理な目標をたててもアカンですものね。
すぐに閲覧者の方々も、名案が浮かぶかわかりませんが きっと誰かが良い案が出ると良いですね。
あと、としおさんの希望は...ボタンからってことは VBAでも可なんですよね?
それとも、全部を関数だけでも良いのですか? (あみな) 2022/01/24(月) 23:12
Dim ip1 As String, ip2 As String, ipx As String, msg As String, x As Variant, tot As Variant, tot2 As Variant, i As Long ip1 = InputBox("売上予算金額(月間)を入力してください") If Not IsNumeric(ip1) Then MsgBox "金額が不適切", vbCritical: Exit Sub ip2 = StrConv(InputBox("曜日別の売上%をカンマ区切りで入力(日,月,火,水,木,金,土)" & vbLf & _ "例:20,10,10,10,10,20,20"), vbNarrow) If UBound(Split(ip2, ",")) <> 6 Then MsgBox "曜日別のカンマ数が6になっていません", vbCritical: Exit Sub For Each x In Split(ip2, ",") tot = tot + Val(x) Next x If tot <> 100 Then MsgBox "曜日別の合計が100%になっていません", vbCritical: Exit Sub ipx = "日,月,火,水,木,金,土" tot = 0 For i = 0 To UBound(Split(ip2, ",")) msg = msg & vbLf & Split(ipx, ",")(i) & "曜日 " & Int(Split(ip2, ",")(i) * Val(ip1) * 0.01) & "円" tot = tot + Int(Split(ip2, ",")(i) * ip1 * 0.01) Next i MsgBox msg & vbLf & "計" & ip1 & "円" & vbLf & "端数" & Val(ip1) - tot & "円" End Sub (mm) 2022/01/25(火) 12:14
Dim ip0 As String, ip1 As String, ip2 As String, ipx As String, msg As String, x As Variant, tot As Variant, tot2 As Variant, i As Long Dim s_date As Date, e_date As Date ip1 = InputBox("売上予算金額(月間)を入力してください") If Not IsNumeric(ip1) Then MsgBox "金額が不適切", vbCritical: Exit Sub ip2 = StrConv(InputBox("曜日別の売上%をカンマ区切りで入力(日,月,火,水,木,金,土)" & vbLf & _ "例:20,10,10,10,10,20,20"), vbNarrow) If UBound(Split(ip2, ",")) <> 6 Then MsgBox "曜日別のカンマ数が6になっていません", vbCritical: Exit Sub ip0 = InputBox("対象年月を入力してください(yyyy/m)") If Not IsDate(ip0) Then MsgBox "月が不正です", vbCritical: Exit Sub s_date = ip0 & "/1" e_date = DateAdd("m", 1, ip0 & "/1") - 1 Dim ipy(6) For i = s_date To e_date ipy(Weekday(i) - 1) = ipy(Weekday(i) - 1) + 1 Next i For Each x In Split(ip2, ",") tot = tot + Val(x) Next x If tot <> 100 Then MsgBox "曜日別の合計が100%になっていません", vbCritical: Exit Sub ipx = "日,月,火,水,木,金,土" tot = 0 For i = 0 To 6 msg = msg & vbLf & Split(ipx, ",")(i) & "曜日 " & Round(Split(ip2, ",")(i) * Val(ip1) * 0.01 / ipy(i), 0) & "円(×" & ipy(i) & "回)" tot = tot + Round(Split(ip2, ",")(i) * Val(ip1) * 0.01 / ipy(i), 0) * ipy(i) Next i MsgBox "対象月" & ip0 & vbLf & msg & vbLf & "計" & ip1 & "円" & vbLf & "要調整額" & Val(ip1) - tot & "円" End Sub
(mm) 2022/01/25(火) 14:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.