- ベストアンサー
EXCELで合計値を元に算出したい。
表題について、少々説明が難しいのですが、どうぞご考慮願います。 たとえば、10人いて、それぞれ時給が違うとします。 その月(又は日、いわゆる締めるとき)の10人全員の合計が、50000円だとすると、それぞれ誰が何時間働けばよいのか?というもので、その時間が自動的に算出する方法を教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 誤差がでますが、これはいかがでしょうか。 ・5人(a,b,c,d,e)の上位にいる人を優先に時間を割り振りします。 ・時間単位が『hr』よりINT関数で時間を割り当てます。 ・設定合計金額は、ざっくりと10%以内の誤差で求められます。 関数計算は、3段階に分けて説明します。 ・『平均時間』=『設定合計金額』÷『5人分の時給の合計』 ・『余り時間』=INT{(『平均時間』-INT(『平均時間』)) * 5} ・各人の時間の設定方法を下記に。 aの時間=IF{『余り時間』>=1,INT(『平均時間』)+1,INT(『平均時間』)} bの時間=IF{『余り時間』>=2,INT(『平均時間』)+1,INT(『平均時間』)} cの時間=IF{『余り時間』>=3,INT(『平均時間』)+1,INT(『平均時間』)} dの時間=IF{『余り時間』>=4,INT(『平均時間』)+1,INT(『平均時間』)} Eの時間=IF{『余り時間』>=5,INT(『平均時間』)+1,INT(『平均時間』)}
その他の回答 (5)
- qualheart
- ベストアンサー率41% (1451/3486)
わかりにくいと思うので必要な情報を簡単に尋ねます。 式を完成させるために必要な情報は、 全員がまったく同じ時間分働いたと仮定した場合の時間なのか、 または全員がまったく同じ賃金分を働いたと仮定した場合の時間なのか、 です。 そのいずれかの条件下なら算出する数式を作れるでしょう。 または、各従業員の時間または賃金の比率を手入力で指定して、各々の時給から労働時間を算出することなら可能です。 どの条件で算出するかを補足していただかないと、計算式は作れません。
補足
説明が少なくお手数おかけします。 求めようとしている時間は、合計の値に最も近い値までは平均して追加していき、超えるところで、それぞれ時間を加除して合計値と調整したいと思っております。 時間 時給 計 例えば、 A B C 1 42 250 10500 2 41 200 8200 3 41 300 12300 4 40 255 10200 5 40 220 8800 合計 50000 予定 50000 という感じで、Aの列の時間を調整し、合計を予定に合わせたい。ということです。 私は簡単なVBAなら扱えるのですが、こういった数学的なものはまだわかりません。あまりに手に余るならあきらめようと思っております。
- tama1978
- ベストアンサー率24% (57/237)
#3です。 間違えました。無視していいです。
- tama1978
- ベストアンサー率24% (57/237)
質問者の条件だと、各人が『均等の金額が支給される。』と仮定することですか。 そうすると個人の仕事時間は、 『個人の仕事時間』=(『合計額』÷『総人数』)÷『時給』 です。 もう少し条件を付けると細かく計算できると思います。 例えば、 ・仕事時間の下限 ・仕事時間の振り分けの最小単位(30毎なのか1時間なのか) ・時間均等を優先にして、残り時間を一人に任せるのか。 などです。
補足
説明不足で申し訳ありません。 仕事時間はほぼ均等で、1時間単位です。合計の値近くになりましたら、それぞれ時間を加除して合わせたいと思っております。
- suz83238
- ベストアンサー率30% (197/656)
不可能です。 2人でもできません。例えば、Aさん時給450円、Bさん時給500円だとして、全部で50000円とすると、 450n+500m=50000 となるので、nは一義的に決められません。(nが1でも2でも3でも可) 2人でもできないのに10人なんてとんでもない。 最新の数学の分野になるような問題です。
- pasocom
- ベストアンサー率41% (3584/8637)
それだけの条件では理屈上、答えを求めることはできません。 ある人だけがたくさん働き、残りの人がわずかしか働かないという場合もあるし、全員が同じ時間数だけ働くということだって考えられるからです。 条件を再検討してください。
補足
説明が少なくお手数おかけします。 求めようとしている時間は、合計の値に最も近い値までは平均して追加していき、超えるところで、それぞれ時間を加除して合計値と調整したいと思っております。 時間 時給 計 例えば、 A B C 1 42 250 10500 2 41 200 8200 3 41 300 12300 4 40 255 10200 5 40 220 8800 合計 50000 予定 50000 という感じで、Aの列の時間を調整し、合計を予定に合わせたい。ということです。 実際上記のような少ない例では、手で打てるのですが、10、20と増えてくるとパターンが多くなり、とても手で打てません。良い案がありましたらご教授願います。
お礼
ありがとうございます。 とても近いところまでこぎつけることができました。 細かいところはやはり人の手でなければいけないようですね。 しかし、教えていただけたもので大分仕事が短縮できると思います。 正直マクロを使わないといけないのかと思っていましたが、関数だけでも近いところまでいけるのですね。 本当にありがとうございました。