- 締切済み
エクセルで交通費支給に必要な硬貨数の計算方法
部の交通費を100人分ほど支給します。 ¥1,520- ¥860- など、10円単位までです。 必要合計金額は分かりますが、千円札、500円硬貨、100円硬貨、50円硬貨、10円硬貨がそれぞれ何枚必要かはどういう計算式で求められるでしょうか? 教えて下さい。よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
例データ A列 B列 氏名 交通費 山田 15234 大田 2347 木下 13487 ーー ユーザー関数を作る。 シート状で、ALT+F11を押して、出る画面にて、挿入ー標準モジュール そこに下記を貼り付ける。 Function ks(y) Dim a(9) Dim z() As Variant a(1) = 10000: a(2) = 5000: a(3) = 1000: a(4) = 500: a(5) = 100: a(6) = 50: a(7) = 10: a(8) = 5: a(9) = 1 x = y ReDim z(9) 'MsgBox UBound(a) For i = 1 To 9 z(i) = Int(x / a(i)) 'MsgBox a(i) & "=" & z(i) x = x - z(i) * a(i) 'MsgBox x Next i ks = z End Function ーーー 2千円券は考慮してません。 ーー シートでC2:L4を範囲指定して、 C2セルに =ks($B2) と入れて数式バー部の数式の最後をクリックして、SHIFT、CTL,ENTERの3つのキーを同時押しする。配列数式。 結果 C1:L4 1万 5千 千 500円 100円 50円 10円 5円 1円 0 1 1 0 0 2 0 3 0 4 0 1 1 0 0 2 0 3 0 4 0 1 1 0 0 2 0 3 0 4 と一遍に結果が出ます。 1万円行の前のC列の0が気に食わないが、改良法は今後勉強します。とりあえずあげます。
- maron--5
- ベストアンサー率36% (321/877)
◆こんな方法もありますよ ◆mike_gさんの表をお借りして A B C D E F G 1 氏名 交通費 \1,000 \500 \100 \50 \10 2 花子 \1,520 1 1 0 0 2 3 太郎 \860 0 1 3 1 1 C2=INT(B2/C$1) ★下にコピー D2=INT(MOD($B2,C$1)/D$1) ★右と下にコピー
お礼
回答ありがとうございます。御礼が遅くなりました。 参考にさせていただきます。
例1 A B C D E F G 1 氏名 交通費 \1,000 \500 \100 \50 \10 2 花子 \1,520 1 1 0 0 2 3 太郎 \860 0 1 3 1 1 C2; =INT($B2/C$1) D2: =INT(($B2-SUMPRODUCT($C$1:C$1,$C2:C2))/D$1) セル D2 を右方へズズーッと複写 例2 A B C D E F G H 1 氏名 交通費 0 \1,000 \500 \100 \50 \10 2 花子 \1,520 0 1 1 0 0 2 3 太郎 \860 0 0 1 3 1 1 0 を入力したC列は非表示にしておくと目障りでなくなるかも。 D2: =INT(($B2-SUMPRODUCT($C$1:C$1,$C2:C2))/D$1) 此れを右方へズズーッと複写
お礼
回答ありがとうございます。御礼が遅くなりました。 参考にさせていただきます。
- shintaro-2
- ベストアンサー率36% (2266/6245)
例えばa1に860円なら b1にint(a1/500) 500円の枚数 c1にint(mod(a1,500)/100) かint((a1-500*b1)/100) 100円の枚数 とやっていけば、一応出せます。 端数をどう出すかちょっと面倒ですけどね。
お礼
回答ありがとうございます。御礼が遅くなりました。 参考にさせていただきます。
お礼
回答ありがとうございます。御礼が遅くなりました。 参考にさせていただきます。
お礼
回答ありがとうございます。御礼が遅くなりました。 参考にさせていただきます。