IF関数で時間を「切り上げ」とか「切り捨て」したいのですが、
できるのでしょか?
例えば
12:10と入力した場合、12:15と表示したり(切り上げ)
10:37と入力した場合、10:30と表示したり(切り捨て)
と言う感じにしたいです。(15分単位で)

このQ&Aに関連する最新のQ&A

A 回答 (6件)

# INの時は15分単位で切り上げ


#(1~15=15分、16~30=30分、31~45=45分、46~00=00分)
# OUTの時は15分単位で切り捨て
#(00~14=00分、15~29=15分、30~44=30分、45~59=45分)
# 休憩時間は15分単位で取った時間を切り上げです。

たぶん処理後に勤務時間の計算をするのだと思いますが
前回と同様の式ですが、ご質問の整形部分の配置例だけを記載します。

  A   B   C     D  E  F
1 IN  休憩  OUT   IN 休  OUT
2 **:** **:**  **:**   式1 →   式2

セルD2 式1 =CEILING(A2,"0:15")
 書式設定 表示形式 ユーザー定義 h:mm;;
E2に複写
セルF2 式2 =FLOOR(C2,"0:15")  表示形式 時刻
 書式設定 表示形式 ユーザー定義 h:mm;;
    • good
    • 0

補足を読みました。



実は、自分の仕事が忙しくて余り時間をかける事が出来ません。
日にちがかかってしまっていいのでしたら、最後までサポート出来ます。

>出勤時間の管理用と言う事なので、もう少し質問を追加させて下さい。

1.休憩時間は何回も入りますか?(回数が不特定だと書式が面倒ですね)
2.24:00を超える勤務はありますか?
3.例えば、お昼休みが12:00~12:59までとした場合、12:00に出勤した場合には、12:15から働いた事にしていいのでしょうか?
4.残業時間を通常の時間と区別しますか?
5.休憩間も開始時刻(OUT?)と終了時刻の入力(IN?)を行いますか?

出勤時間の管理用と言う事ですので、整理のついでに補足をお願いします。
    • good
    • 0

どうしてもIF関数を使用したい場合、下のようにしたらどうでしょうか。



例えば、午後12時10分から12時15分の間の入力を全て12:15と表示したければ、A1に下記の(1)の式を入力し、B1にTIME関数を使って(2)などと入力(この場合は12時12分)すれば、A1には条件を満たされた場合だけ
12:15と表示されます。

(1)=IF(AND(B1>=TIME(12,10,0),B1<=TIME(12,15,0)),"12:15","")
(2)=TIME(12,12,00)
    • good
    • 0

IF関数ではありませんが、時間・・時刻、どちらであっても


与えられた時間を60進数から10進数に変換して4倍する。
4倍した10進数を四捨五入ROUND処理する。
ROUND処理した10進数を60進数に戻す。
で15分単位の結果が得られると思います。お試し下さい。
    • good
    • 0

こんにちは



EXCELでのご質問として
---------------------------------------------
15分単位での「切上げ」と「切捨て」それぞれの方法
をご質問しているのであれば

A1に時間入力として

切上げ =CEILING(A1,"0:15") 表示形式 時刻
切捨て =FLOOR(A1,"0:15")  表示形式 時刻
----------------------------------------------
ですが

# 12:10と入力した場合、12:15(切り上げ)
# 10:37と入力した場合、10:30(切り捨て)
の両方を同時に満足する式となると gould09さんも
書かれている通り、情報不足です。
もう少し詳しい規則性を記載して頂くことになります。
・時間帯によって処理が違うのか
 (例えば12時台なら切上げ 10時台なら切捨て)
・分に処理の境界あるのか
 (例えば **:07なら切捨て **:08なら切上げ)

この回答への補足

下の段の内容の補足間違えました!!
出勤時間の管理用に使いたいです。
例えば、
INの時は15分単位で切り上げ
(1~15=15分、16~30=30分、31~45=45分、46~00=00分)
OUTの時は15分単位で切り捨て
(00~14=00分、15~29=15分、30~44=30分、45~59=45分)
休憩時間は15分単位で取った時間を切り上げです。
関数は何でも良いのです。どのようにしたら良いですか?

補足日時:2002/01/27 19:53
    • good
    • 0

こんにちは



もう少し詳しい情報が必要だと思います。

対象のアプリケーションはEXCELと考えてよろしいですか?

質問では12:10だったら12:15と有りますが、12:09が入力された場合はどうしたいですか?
13:10の時はどうなりますか? 同じように13:15になりますか?
ここの考え方が、決まらないと正しい関数が書けません。
出来るか、出来ないかと言う事で有れば出来ると言う回答になります。

質問から想像すると、出勤時間の管理用に使うような気がするのですがどうでしょうか?
もし、そうだとすると休み時間は特別な扱いにする必要が有ると思います。
休み時間まで考えるのなら、関数ではなくVBAを使った方が楽かもしれません。

ただ、現状の情報ではどうゆうものを望んでいるかわからないので具体的な話は出来ません。

この回答への補足

出勤時間の管理用に使いたいです。
例えば、
INの時は15分単位で切り上げ
(1~15=15分、16~30=30分、31~45=45分、46~00=00分)
OUTの時は15分単位で切り捨て
(00~15=15分、16~30=30分、31~45=45分、46~59=00分)
休憩時間は15分単位で取った時間を切り上げです。
関数は何でも良いのです。どのようにしたら良いですか?

補足日時:2002/01/27 19:34
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで種類を数える関数が無いのは何故?

エクセルで種類を数える関数が無いのは何故なんでしょうか?

エクセルで種類を数えるには、いくつかの関数を組み合わせるのが一般的ですよね?
直接数える関数が無いのは、訳があるんでしょうか?

Aベストアンサー

>>エクセルで種類を数える関数が無いのは何故なんでしょうか?

やっぱり、そういう関数が必要な方が全体からみたら少数派だと、エクセルの開発者たちが考えているからではないかと思います。
また、既存の関数を組み合わせたら、対処可能だから、無理して新しい関数を作る必要性もない、開発の優先順位が低いって判断もあるでしょうね。

私は、エクセルの表を作ったり、エクセルVBAでプログラムを作ったりしますけど、そういう関数が必要になったことが全くありませんし。

Qアクセス:フォーム入力:【大項目→中項目への絞りこみ入力】方法を教えてください。

アクセス初心者です。よろしくお願いします。
【やりたいこと:次のような大項目→中項目への絞りこみ入力】
フォームの入力で、大項目をリストで選ぶと、次に小項目のリストが自動で出て入力できるようにしたい。

◆まず、テーブルで「大項目コード」表があります。
  1  A
  2  B
  3  …
◆別のテーブルで、
「Aの小項目」表
 11  ○ 
 12  × 
 13  △  
 
「Bの小項目」表
 21  ●
 23  ■
 24  ▲
というようなものがあります。

そこで、フォームで「大項目」フィールドに「1」(=A)を入力すると「小項目」フィールドに自動でコンボボックスのようなもので「○、×、△」がリストが出てコード番号(11,12,13)が入力できる、同様に「大項目」に「2」(=B)と入力するとリスト「●、■、▲」で選んで入力したいのです。

私が初心者であることから、上記のようなアクセス構築の考え方そのものも邪道なものかどうか、不安があります。
要は、【大項目→中項目への絞りこみ入力】ができればいいのです。できますなら、できるだけシンプルな方法を教えてくだされば幸いです。
よろしくお願いいたします。

アクセス初心者です。よろしくお願いします。
【やりたいこと:次のような大項目→中項目への絞りこみ入力】
フォームの入力で、大項目をリストで選ぶと、次に小項目のリストが自動で出て入力できるようにしたい。

◆まず、テーブルで「大項目コード」表があります。
  1  A
  2  B
  3  …
◆別のテーブルで、
「Aの小項目」表
 11  ○ 
 12  × 
 13  △  
 
「Bの小項目」表
 21  ●
 23  ■
 24  ▲
というようなものがあります。

そこで、...続きを読む

Aベストアンサー

コンボボックスのプロパティは大体このままで大丈夫であると思います。

me.コンボ2.requeryについては

2番目のコンボボックスのプロパティのイベントのタブの変更時のところに何か今入っていたらそれを選んで消してください。 そのあとフォーカスを変更時に充てると、▼と・・・という四角が出てきますので、・・・のほうを選択して「コードビルダ」を選んでください。
そうすると
Private Sub コンボ1_Change()

End Sub

と出てきますので、その間に
Private Sub コンボ1_Change()
me.コンボ2.requery
End Sub

と書いて画面を閉じていただければ大丈夫です。

最初のコンボボックスの名前= コンボ1
2番目のコンボボックスの名前= コンボ2

それで試してみてください。 
説明が下手で申し訳ありません。

Qエクセルの関数で

エクセルの関数辞典を見ていたら、CUMPRINC関数というのがありました。
しかし、エクセルの「挿入」→「関数」→関数の分類で「財務」というのを選択したのですが、一覧表に載っていません。
どこに載っているのでしょうか?
どうすればこの関数を使えますか?
ちなみにシートの上でやっても関数の反応をしませんでした。

Aベストアンサー

Yahooで検索してみると、参考URLが引っかかりました。

参考になりませんか?

参考URL:http://money-sense.net/doc/20041215_224257.php

Q【エクセル】CSV形式で保存し、そのファイルを開けるとセル値「15-10」が「10月15日」となって保存されている。

いつもお世話になってます。

宛名ソフトを使おうと住所録のシートをCSV(カンマ区切り)形式で保存し、再度そのCSVファイルを開いたところ、番地が入った例えば半角「15-10」というセル値が「10月15日」と表示されてしまいます。

これを解消する方法を教えてください。
よろしくお願いします。

CSV形式で保存し、そのファイルを開けるとセル値「15-10」が「10月15日」となって保存されている。

Aベストアンサー

データ→外部データの取り込み を使用して、15-10の部分を
文字列として取り込みをしてみて下さい。

http://www.eurus.dti.ne.jp/~yoneyama/Excel/ex-q-a/q_settei.html#csv_file

http://cobs.jp/skillup/office/qanda/bn/031112.html
↑こちらの(2)CSVファイルをエクセルに読み込もう を
ご覧下さい。

Qエクセルの関数 ネスト

エクセルの関数 ネスト

エクセルの関数で、ネストさせるときがあるとおもうのですが、

関数を内側に書いたらよいのか外側に書いたらよいのか分からなくなる時があります。

エクセルの関数に関してわかりやすく書いてあるページなどありますか。

Aベストアンサー

こんばんは

Excel2003までは、ネストが7まで、2007では64までが可能です。
http://www.google.co.jp/search?hl=ja&source=hp&q=excel+%E3%83%8D%E3%82%B9%E3%83%88%E3%80%802003%E3%80%802007&aq=f&aqi=&aql=&oq=&gs_rfai=

「仕様上は可能」でも、複雑なネストは間違いが生じやすいですし、変更もしにくくなります。「出来るだけネストはしない」「適宜、中間結果をセルに出力する」という方法を採った方が、間違いが少なく、柔軟性のあるシステムになると思います。

>エクセルの関数に関してわかりやすく書いてあるページなどありますか。
関数の個別の機能ならば、Webサイトも書籍も多数あるのですが、「組み合わせて使う」というのはその場その場での発想になってしまうと思います。

Qアクセス:フォーム入力で、最後の入力が終わっても次のレコードに移動しないようにするには?

お世話になります。
アクセス初心者です。よろしくお願いします。

アクセスのフォームでデータ入力をして最後の入力が終わったら、自動的に次の(新規の)レコードに移りますが、これを留めるにはどのようにすればよいか教えてください。

以前何かの本で見かけたのですが全く思い出せません。それによると簡単な方法でできたような気がします。よろしくお願いいたします。

Aベストアンサー

フォームプロパティ[Tabキー移動]を
[全てのレコード]
から
[カレントレコード]
に変更します。

Qエクセル関数の解読サイトなんてありますか?

エクセル関数の解読サイトなんてありますか?

いつもお世話になっております<(_ _)>

エクセルファイルに関数の入った数式が入力されています。
セルごとに複数の関数が入っていますが、私にはちっともわかりません。

そこで質問です。
こんなとき「エクセル関数を解読」してくれるようなサイトってありませんか?

たとえば検索窓があってそこに「=SUM(S1:S13)」わからなくて困っている関数式を入力。
すると答えの別ボックスに「S1~S13までの数値の合計」と出てくるようなサイト。

それに近いサイトでも良いので知っている方がいらっしゃればぜひ、教えてください<(_ _)>

Aベストアンサー

もし、

=IF(E14="","",IF(O14="",(IF(E14>"18:00"*1,"18:00",E14)-IF(C14<="8:00"*1,"8:00",C14))*24*1300,(IF(E14>"18:00"*1,"18:00",E14)-IF(C14<="8:00"*1,"8:00",C14))*24*1625))

だったら、どういう文章が出て欲しいのでしょうか?

もしE14が空白だったら、
 空白、
そうじゃなかったから、
 もしO14が空白だったら、
  (もしE14が18:00より大きかったら18:00、そうじゃなかったらE14)-(もしC14が8:00以下だったら8:00、そうじゃなかったらC14)×24×1300
 そうじゃなかったら、
  (もしE14が18:00より大きかったら18:00、そうじゃなかったらE14)-(もしC14が8:00以下だったら8:00、そうじゃなかったらC14)×24×1625

って感じですか?
数式をそのまま読解したほうが解りやすくないですか?

Q46:25:00→46:25と表示する方法

46:25:00→46:25と表示する方法

EXCEL2007です。
46分25秒を46:25と入力すると
セルの中に46:25:00
後ろの:00をとって表示をしたいです。
どのようにしたらよいか教えてください。

よろしくお願いします。

Aベストアンサー

>46分25秒を46:25と入力すると
>セルの中に46:25:00
これは、エクセルの上では
46時間25分と認識されています。
表示形式のユーザー定義で表示を変えることはできますが
もし、後々、計算や集計に使うととんでもない結果を出してしまう事になります。
0:46:25と入力して
00:46:25と表示が出る。
ユーザー定義で mm:ss と指定して
46:25 と表示させたほうが良いです。

Qエクセル関数を、書き写して分析できるツールはある?

タイトルの件、質問します。

エクセルの関数を分析する際に、エクセルの数式バーや、セルに入っている関数を
F2を教えて見るのでは、見にくい場合があります。

現在は、私は、メモ帳に関数をコピーして、分析したり、修正したりしています。
エクセルの機能or他ソフトで、関数を分析できるツールはあるのでしょうか??

【エクセルバージョン】
2003、2007

Aベストアンサー

難解な数式を理解したいとき,最も便利に利用できるのは,2003ではツールメニューのワークシート分析にある「数式の検証」です。
2007では数式タブにあります。

メンドクサイ数式のセルで数式の検証を使い,どの関数やどのカッコから計算が進んでいくのかを1ステップずつトレースして理解します。また意図しない結果がどの段階で発生しているのか追跡します。

このやり方は勿論間違った数式(意図しない結果が出てきた場合)を追跡するのにも使いますが,むしろ誰かに教わった「正しい数式」を理解する時に便利な方法です。
そもそも計算が通っていない(たとえばカッコの対応が間違えていて,Enterしても受け付けてくれないようなミスをしている場合)には使えません。



また,数式バーの中で数式の「中」にカーソルを入れて左右の矢印キーでカーソルを動かしていったときに,「(」や「)」をまたいだ瞬間に,対応する「閉じカッコ」「始まりのカッコ」が色つきで強調表示されるのを確認しながら,カッコの対応がまちがえてないかなどを調べるのも簡易な良い方法です。


あまり使わない方法ですが,数式の中で適宜ALT+Enterを打って「セル内改行」してしまい,数式を縦に分解して書いてみるのも整理しやすい方法のひとつです。

難解な数式を理解したいとき,最も便利に利用できるのは,2003ではツールメニューのワークシート分析にある「数式の検証」です。
2007では数式タブにあります。

メンドクサイ数式のセルで数式の検証を使い,どの関数やどのカッコから計算が進んでいくのかを1ステップずつトレースして理解します。また意図しない結果がどの段階で発生しているのか追跡します。

このやり方は勿論間違った数式(意図しない結果が出てきた場合)を追跡するのにも使いますが,むしろ誰かに教わった「正しい数式」を理解する時に便利...続きを読む

Qエクセルで入力用の場所に入力したら、入力内容が人ごとに反映される方法

入力用のシートを1つ用意して、その表の中の項目を入力したら、内容が他のシートに反映される方法ってありますか?
例えば、社員Aの社員番号が001で、
社員番号を入力したら、その人のシートに
次々に情報が入力されていくっていうことはできるのでしょうか??

すごく分かりにくい質問ですみません。

Aベストアンサー

#2のmatsu_junです。
>使用しているのが、エクセル97と古いからでしょうか??
おそらくそうだと思います。手元に97が無いので確認が取れませんが、私が以前に回答した手順は参考になりませんでしょうか。下の参考URLより、#5をご覧ください。

また、先の回答ではシート名を間違えるとExcelの再立ち上げが必要になります。一応下に再立ち上げが不要なように改良しておきました。こちらをご利用ください。

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERREND
Application.EnableEvents = False
If Target.Address <> "$A$1" And Range("A1").Value <> Empty Then
Sh_Nam$ = CStr(Range("A1").Value)
Worksheets(Sh_Nam).Cells(Target.Row, Target.Column).Value = Target.Value
End If
Application.EnableEvents = True
Exit Sub
ERREND:
MsgBox Error(Err.Number)
Application.EnableEvents = True
End Sub

参考URL:http://okweb.jp/kotaeru.php3?qid=1225216

#2のmatsu_junです。
>使用しているのが、エクセル97と古いからでしょうか??
おそらくそうだと思います。手元に97が無いので確認が取れませんが、私が以前に回答した手順は参考になりませんでしょうか。下の参考URLより、#5をご覧ください。

また、先の回答ではシート名を間違えるとExcelの再立ち上げが必要になります。一応下に再立ち上げが不要なように改良しておきました。こちらをご利用ください。

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERREND
Application.Enab...続きを読む


人気Q&Aランキング

おすすめ情報