アプリ版:「スタンプのみでお礼する」機能のリリースについて

仕事で資料の作成をしています。
関数が苦手で、どう入力していいのかわからない状態です(;_;)
ご指導、お願いいたします。

以下のような表を作成しました。

M14(開始時間)からN14(終了時間)が4時間以上の
場合、O14に1という数字を、4時間未満の場合は0.5と
いう数字が自動に出るようにしたいのです。
数式はO14に入力すると思いますが、どのような式を
入力すればいいのでしょうか。
=HOUR(N14-M14) でIFを使用しようかと思っています
が、間違いでしょうか。エラーが出ます。

ここで出たO14の数値が1の場合は、AJ12に手動入力する
数値×1.072で出た数字は10円未満切り捨てにした数字(A)、
さらに(A)+AJ8×V14-W14で出た数字をX14に自動的に
入力されるようにしたいのです。

わかりづらいかと思いますが、補足はできますので、ご指導
お願いいたします。

A 回答 (4件)

> O14が1の場合は、AJ12×1.072(10円未満切り捨て)


> O14が0.5の場合は、AJ11×1.072(10円未満切り捨て)

=rounddown(if(O14=1, AJ12, if(O14=0.5, AJ11))*1.072, -1) …(1)
というのが一番簡単に思いつくヤリ方。この場合O14が0の時は0になります。すると、
X14: =rounddown(if(O14=1, AJ12, if(O14=0.5, AJ11))*1.072, -1)+AJ8*V14-W14
ですね。

if()関数の入れ子が複雑になるととてもわかりづらいので、(1)のかわりに
=rounddown(choose(O14*2, AJ12, AJ11)*1.072, -1) …(2)
なんてヤル方法もあります。ただしこれはO14が0の時にエラーになるので、実際には
=rounddown(choose(O14*2+1, 0, AJ12, AJ11)*1.072, -1) …(3)
のように調整して使います。結構おすすめ。
    • good
    • 0
この回答へのお礼

再度の回答をありがとうございます。
できました! できました!

・・・が、またまた私の質問漏れのようで、(1)を使うと問題ないのですが、
O14が0の時に、勝手に数字が入ってしまいます。
自分でIFを使ってみましたが、やはり数式エラーが出てしまいます。
(3)が一番良い方法だと思いますが、計算が合わなくなってしまいます。
(1)の方法で、O14が0の場合に0を表示することは可能でしょうか?

たびたびのお付き合い、申し訳ありませんが、よろしくお願い
いたします。

お礼日時:2003/03/29 19:18

>O列を縦に足して合計を出していたものが、O列に数式を


入れるとマイナスされてしまいます。

数式の合計でマイナスになるのかな?
つまり、結果として 1と 0.5しか出ないのに その合計が マイナスに
なるというのはおかしいと思います。
まだ、他に記載されてない要因がありそうです。

>また、O14に「時間が未入力の場合はO14に0を自動入力
したい」のですが、どのように数式を入れたら良いのでしょうか。

=IF(HOUR(N14-M14)>4,"1","0.5")

=IF(HOUR(N14-M14)>4,"1","0.5") * IF(N14="",IF(M14="",0,1),1)
としたらいいでしょう。
    • good
    • 0
この回答へのお礼

再度の回答、ありがとうございます。

前半の疑問については、なぜマイナスになってしまった
のかは私の力では判明できませんが、今回の回答と#2
さんの回答で問題なく解決しました。
ありがとうございました。

後半の疑問がよりややこしいのですが、回答いただける
ようでしたら、

O14が1の場合は、AJ12×1.072(10円未満切り捨て)
O14が0.5の場合は、AJ11×1.072(10円未満切り捨て)
ここで出た数値を(A)とし、さらに
(A)+AJ8×V14-W14
の数値をX14に自動入力されるようにしたいです。

と内容が少し不足していたので補足してこちらに書き
ましたので、よろしくお願いいたします。

お礼日時:2003/03/28 10:05

4時間「以上」なら


=if(hour(N14-M14)>=4, 1, 0.5)
であるべきですね。

また、N14とM14の両方に時刻が入らないかぎりO14を0にするのなら、
=if(or(N14="", M14=""), 0, if(hour(N14-M14)>=4, 1, 0.5))
となります。

(A)は
=if(O14=1, rounddown(AJ12*1.072, -1), "")
とするとO14が1にならなければ何も表示しませんし、最後の""を0にすれば0が
表示されます。

この回答への補足

早速の回答、ありがとうございます。

おかげさまで前半の私の疑問については、解決しました。
ありがとうございました。

後半の疑問については、私の質問に不足があり、解決して
おりません。
再度、こちらに補足ではありませんが、書き直しますので
わかりましたら、アドバイスをお願いいたします。

O14が1の場合は、AJ12×1.072(10円未満切り捨て)
O14が0.5の場合は、AJ11×1.072(10円未満切り捨て)
ここで出た数値を(A)とし、さらに
(A)+AJ8×V14-W14
の数値をX14に自動入力されるようにしたいです。

たびたび申し訳ありませんが、ご指導をお願いいたします。

補足日時:2003/03/28 10:00
    • good
    • 0

=IF(HOUR(N14-M14)>4,"1","0.5")



ただし、HOUR(N14-M14)の値が 4とかにならない場合は、それに
合わせて「>4」の値を変更してください。

また N14とM14にどういう値が入ってるかによっても違います。
直接 (N14-M14) だけでいい場合もあるかもしれません。

この回答への補足

早速の回答、ありがとうございます。

O14に上記回答の数式を入れたところ、私の疑問は解決
しました。ありがとうございます。
が、またまた疑問が・・・

O列を縦に足して合計を出していたものが、O列に数式を
入れるとマイナスされてしまいます。
また、O14に「時間が未入力の場合はO14に0を自動入力
したい」のですが、どのように数式を入れたら良いのでしょうか。

再度回答いただけますと、助かります。

よろしくお願いいたします。

補足日時:2003/03/27 15:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!