[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『金種』(パル)
勝手のいい金種計算はできません 思いつきには対応できません 一般的金種 10000 5000 1000 500 100 50 10 5 1 56789 =INT(A2/10000) =INT(MOD(A2,10000)/5000) =INT(MOD(A2,5000)/1000) =INT(MOD(A2,1000)/500) =INT(MOD(A2,500)/100) =INT(MOD(A2,100)/50) =INT(MOD(A2,50)/10) =INT(MOD(A2,10)/5) =MOD(A2,5)
それぞれを5000で割って余りが1000円札必要枚数 残りを5000円ずつに束ねて 10000 5000 1000で金種計算 (はいそれまでよー!!!!)
こんな方法はどうでっか? ただ実用に耐えられるかどうかわかりまへんのんで、とりあえず新しいシートで試して くらはい。
そのシートのレイアウトはこんな塩梅にします。 A B C D E F G H I J K 1 名前 給料 10000 5000 1000 500 100 50 10 5 1 2 3 4 5 6 7 ↓ 20まで
そのシートのシートタブ \Sheet1/を右クリックして下のコードをコピペします。 戻ってデータ(A列とB列)を書き込んでみます。 これで金種別に表示されますから、そのうちの、例えばE列を変更可能な数値に置き換えてみてくらはい。 ただ、変更するばやいは金額の少ない方から順番に行います。
どないでっか、こんなんで? (弥太郎) '----------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer, data As Long If Target.Count > 1 Then Exit Sub If Application.Intersect(Target, Range("b2:k20")) Is Nothing Then Exit Sub Application.EnableEvents = False On Error GoTo trbl With Target If .Column = 2 Then data = .Value .Offset(, 1).Resize(, 9).ClearContents For i = 1 To 9 .Offset(, i) = data \ Cells(1, i + 2) data = data - .Offset(, i) * Cells(1, i + 2) If data = 0 Then Exit For Next i Else data = Cells(.Row, 2) data = data - .Value * Cells(1, .Column) For i = 1 To .Column - 3 Cells(.Row, i + 2) = data \ Cells(1, i + 2) data = data - Cells(.Row, i + 2) * Cells(1, i + 2) Next i If Cells(.Row, 2) <> Evaluate("=sumproduct((c1:k1)*(c" & .Row & ":k" & .Row & "))") Then MsgBox "それは計算でけまへん" Application.EnableEvents = True Cells(.Row, 2) = Cells(.Row, 2) End If End If End With trbl: Application.EnableEvents = True End Sub
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.