• 締切済み

Excel :日付け時間データ処理

Excelのある列に日付け時間データが入っています。 このデータを判定して時間のみが、21時から5時までに入っていればその右のセルに1を、そうでなければ0を書き出すにはどんな式を書けばいいのかに対して =IF(OR(HOUR(A1)<5,HOUR(A1)>=21),1,0) なる式を使い処理できることがわかりましたが、日付け時間データがNULLになったときは、1が表示されることになります。データがNULLなら何もしないとするにはどうすればいいでしょうか。

  • taktta
  • お礼率72% (1031/1430)

みんなの回答

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

=IF(A1="","",IF(OR(HOUR(A1)<5,HOUR(A1)>=21),1,0))

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございました。

noname#123709
noname#123709
回答No.2

条件を追加すればよいかと・・・。 =IF(HOUR(A2)=0,"",IF(OR(HOUR(A2)<5,HOUR(A2)>=21),1,0))

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございました。

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

ここでいうNULLは空ということでいいですかね。 =IF(A1="","",IF(OR(HOUR(A1)<5,HOUR(A1)>=21),1,0))

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございました。

関連するQ&A

  • excel:時間処理

    Excelのある列に日付け時間データが入っています。 このデータを判定して時間のみが、21時から5時までに入っていればその右のセルに1を、そうでなければ0を書き出すにはどんな式を書けばいいですか。 例  項目  開始時間 H  2006/1/19 9:53 G  2006/1/19 1:53 J  2006/1/10 23:53 K  2006/1/4 4:05

  • エクセルで日付データの比較/判定でカウント

    エクセルで日付データの比較/判定でカウント A1に 2006/2/22 A2に 2006/2/23 ---------- という日付データが入っている。 またc1~c4に c1:2006/2/24+時間  (例2006/2/24 07:18) c2:2006/2/23+時間 c3:2006/2/23+時間 c4:2006/2/22+時間 ---------- という時刻まで含む日付データが入っている。 (処理)A1とC列のデータの日付けが同じものは1つc4だけなのでカウントし1件とその横の B列(B1)にカウント件数を表示したい。 B1に書く式はどのようにすればよいか。よろしくお願いします。

  • エクセルで日付データの比較/判定で区分条件満たすカウント

    エクセルで日付データの比較/判定でカウント A1に 2006/2/22 A2に 2006/2/23 ---------- という日付データが入っている。 またH列に H1:2006/2/24+時間  (例2006/2/24 07:18) H2:2006/2/23+時間 H3:2006/2/23+時間 H4:2006/2/22+時間 H5:2006/2/21+時間 ---------- という時刻まで含む日付データが入っている。 (処理)A1とH列のデータの日付けが同じものは1つH4だけなのでカウントし1件とその横の B列(B1)にカウント件数を表示したい。 B1に書く式は =FREQUENCY(H:H,A1+"23:59:59")-FREQUENCY(H:H,A1-"0:00:01") とすればいいのですが、(ここからが質問です) J列:カウント対象区分(m、d、n) J1:m J2:m J3:n J4:d J5:d 更にJ列にカウント対象区分が入っておりそのうち時刻日付をマッチングする対象としてH列の日付時刻データのうち、区分nの付いているものとだけを判定対象に行いカウントするためにはどう式を付けくわえればいいですか

  • 日付を含む関数について。

    エクセル2003での質問です。 ある列のセル(A1とします)のセルに日付が書き込まれた時だけ、対応する列のセル(B1とします)に決まった文字(ここでは"済")が入るようにしたいと思いIF関数を使って組み立てたのですが、日付の入れ方が解らず上手く行きません。 =IF(A1="日付","済","") ←B1に書き込んでます。 と式を立てていますが、この・日付・の部分の入れ方を教えて頂けないでしょうか? また、勉強の為他の考え方も有ればお教え下さい。 宜しく御願いします。

  • 繰り返し処理で

    以下のEXCELデータを【Sheet1】に取り込む 【Sheet1】       A      B    C 1 2008/1/1 0:00  100  100 2 2008/1/1 1:00  100  100 3 2008/1/1 2:00  100  100 この時最終行のA3の文字列を変数に入れる ↓ 【Sheet1】の全セルをクリア ↓ 【2回目のデータ】        A     B    C 1 2008/1/1 2:00  100  100 2 2008/1/1 3:00  100  100 3 2008/1/1 4:00  100  100 この時,1回目のデータの最終行だったA3の文字列【2008/1/1 2:00】と 2回目のデータのA1【2008/1/1 2:00】を比較して、 同じであれば、A2行目から処理を開始 ※ もし比較して一致しなければ1行目から処理 ↓ 【Sheet1】の全セルをクリア ↓ 2回目のデータの最終行だったA3の文字列【2008/1/1 4:00】と 3回目のデータのA1文字列を比較 一致したら2行目から処理 ↓ これの繰り返し処理 マクロを作ってみたのですが、何かもっとこうしたほうがいい様な書き方あれば 教えていただきたく思っているのですが・・・; あとContinueに代わる、繰り返し関数?ってありますでしょうか? ------------------------------------------------------------------------------- Gyo = 100 x = Null For h = 1 To Gyo  If h = 1 Then    'nullでない場合     if x := "" then       'A1とxを比較して同じであればコンティニュー       If x = Sheets(SheetName).Cells(1,1) Then          continue '←Forに戻る       End If     End If   else if h = Gyo then     '最終A行のデータをx変数に格納      x = Sheets(SheetName).Range("A100").End(xlUp).Row   End If Next h -------------------------------------------------------------------------------

  • エクセルの関数でのデータ処理が重い

    お願いします。 エクセルで2万件のデータを関数処理しています。時間がかかるのでVBAで処理できればと 考えています。 A列に当日の顧客コード B列に前日の顧客コード   以下の式によって、前日と当日を比較して増えた顧客と減った顧客を表示させています。 C列に=IF(COUNTIF(B$2:B$23000,A2)>=1,"","増")の関数が入っています。 計算させた後でC列をオートフィルタで増のみ表示し、確認。 D列に=IF(COUNTIF(A$2:A$23000,B2)>=1,"","減")の関数が入っています。 計算させた後でD列をオートフィルタで減のみ表示し、確認。 これをVBAで処理して時間の短縮をしたいのでお教え頂ければ幸いです。 宜しくお願いします。

  • エクセルの日付の処理について

    エクセルの日付の処理方法を教えて下さい。 VLOOKUPを使って、大量の日付の付いたデータを処理したいのですが、たとえば 一方は  2012/7/1 もう一方は 201207 (月単位のデータしかない、「日」の情報が無い文字列データ) だとします。 このふたつを同じものとして検索したい場合、どのように 201207 を加工したらよいのでしょうか? 201207 という文字列データをシリアル値に変更すればいいのかなと考えたのですが シリアル値に変更する方法がよくわかりませんでした。 よろしくお願いします。

  • 同一セルに日時があるものを日付と時間に分ける方法

    ひとつのセルに日付と時間が混在している下記の様なセルがあったとして 加工しやすいように日付と時間に列を分けたいのですがどのようにすれば よいでしょうか。 変更前例:8/8/2011 14:00(A2のセルに日にちと時間が混在) 変更後例:8/8/2011(B2のセル)、14:00(C2のセル) A列が入力されていてそのデータをB列、C列にわけたいです。 宜しくお願い致します。

  • エクセルでの一括データ処理(日付補完など)

    エクセルによるデータ整理に手を焼いています。 データファイルを下記の様に変換して整理したいと考えています。 <元データ> [A]       [B]        [C]       [D] … [1] 日付1     値1       日付2      値2 [2] 2007/12/7   1        2007/12/5   20 [3] 2007/12/9   4        2007/12/6   30 [4] 2007/12/11   3        2007/12/7   15 [5]                    2007/12/10  10 [6]                    2007/12/11  10 (A5:B6は空白です) <変換後データ>    [A]     [B]      [C]     [1]日付     値1     値2 [2]2007/12/5  NA     20 [3]2007/12/6  NA     30 [4]2007/12/7   1     15 [5]2007/12/8  NA     NA [6]2007/12/9   4     NA [7]2007/12/10  NA    10 [8]2007/12/11  3     10 ("NA"部分は"0"あるいは空白で構いません) 同種の質問としてttp://okwave.jp/qa/q3911631.htmlを見つけましたが、 データファイルが大きいので、どうにかして一括で処理する方法を探しています。 やりたいことは、 (1)飛び飛びになっているデータの日付を補完し、 (2)日付を示す系列は1つだけに留めた上で日付に対応した値を並べる です。 マクロによる処理でも関数による処理でも何でも構いませんので、 どなたか解決策をご教示していただけると助かります。 なお、実際に処理したいデータファイルは1000列ほどで、500種類くらいの値とそれらに対応した日付が並んでいます。 使用しているエクセルは2007です。

  • excel:日付け処理

    Excelの表で、 B列には、C列のデータがある申請処理が済んでいる(1)か済んでいない(0)かのデータ、1,0が入っています。 C列の2行目から、所属期間が次のように入っています。 処理(B列):所属期間(C列) 1:2006/1/1~2/28 0:2006/1/1~3/1 1:2006/12/1~2006/1/31 0:2006/1/1~2/28 1:2006/1/1~3/1 1:2005/12/1~2006/1/31 1:2006/1/1~2/151:a~b(と説明のため表記) ------------------------- などの所属期間情報が日付の属性として入っているものとします。このときB列の値が0のものに対して、現在日を元に、(現在日-14)≦b値≦(現在日+14)を満足していれば、処理しなければいけないということでセルを黄色に表示するようにしたい。なおもし以上の処理をする前に色の付いたC列のセルがある場合は、いったん色をクリアしてから黄色付けするようにする。 以上をマクロで書くには、どうすればよいか。もしC列に対する処理が大変ならC列のa~bというデータが、最初からC列,D列に分離されているとしてもいいです。 よろしくお願いします。

専門家に質問してみよう