dポイントプレゼントキャンペーン実施中!

いつもお世話になります。
セルに、"9-11"や、"9:30-12:30"などの形で、時間をハイフンで区切られたデータがあるのですが、それを、
1行目   9 ,10 ,11 ,12 ,13・・・
2行目    0,30, 0,30, 0,30, 0,30,0 ,30,・・・
データ"9-11",○,○,○,○, , , , , , ・・・
"9:30-12:30", ,○,○,○,○,○,○, , , 
という形に、横に作っている表に自動で書いていくことはできますでしょうか?

以上宜しくお願い致します。

A 回答 (4件)

>1行目   9 ,10 ,11 ,12 ,13・・・


>2行目    0,30, 0,30, 0,30, 0,30,0 ,30,・・・
にすると非常に扱いにくいので、以下に変えてみます

     A列     B  C   D   E   F    G   H   I列      
1行目        9:00 9:30 10:00 10:30 11:00 11:30 12:00 12:30
2行目 9-11     ○  ○   ○  ○  ○      
3行目 9:00-11:30  ○  ○   ○  ○  ○   ○    
4行目 10:30-12:30            ○  ○   ○   ○  ○

B2セルの式は以下です。右、下方向にコピーしてください
=IF(AND(B$1>=IF(ISNUMBER(FIND(":",LEFT($A2,FIND("-",$A2)-1))),LEFT($A2,FIND("-",$A2)-1)*1,LEFT($A2,FIND("-",$A2)-1)/24),B$1<=IF(ISNUMBER(FIND(":",RIGHT($A2,LEN($A2)-FIND("-",$A2)))),RIGHT($A2,LEN($A2)-FIND("-",$A2))*1,RIGHT($A2,LEN($A2)-FIND("-",$A2))/24)),"○","")
    • good
    • 0

初め質問を読んだとき良くわからなかった。

#1の補足で
こういうことらしい。
例データ
B1:E2に
9101011
3003030
B3に
=TIMEVALUE(B1&":"&B2)
ト入れて横方向に式を複写
結果B3:E3
9:3010:0010:3011:30
これがエクセルで作表するときの通常の姿。
ーー
さて指定した時間範囲に対応する列に○をつけるのは
例データ
91010111112121313
30030030030030
9:3010:0010:3011:0011:3012:0012:3013:0013:30
9-11○○○○
9:30-12:30○○○○○○○
10-11○○○
10-10:30○○
9:30-11○○○○
まず式が複雑になるのでユーザー関数を作る(9-11の表現を許したのが複雑になる原因)
Function fr(a)
s = Split(a, "-")
p = InStr(s(0), ":")
If p = 0 Then
fr = TimeValue(s(0) & ":00")
Else
fr = TimeValue(s(0))
End If
End Function
Function tr(a)
s = Split(a, "-")
p = InStr(s(1), ":")
If p = 0 Then
tr = TimeValue(s(1) & ":00")
Else
tr = TimeValue(s(1))
End If
End Function
ーー
B4に
=IF(AND(B$3>=fr($A4),B$3<=tr($A4)),"○","")
と入れてJ列まで横方向に式を複写。
B4:J4を範囲指定し、J4で+ハンドルを出して、下方向に式を複写。
結果
上記のB4:J8の通り。
ーー
9-11について両方○が付いているが、片一方が正しいかも知れない。質問者で修正してください。
=IF(AND(B$3>=fr($A4),B$3<tr($A4)),"○","")
であれば結果は
ーーー
9-11○○○
9:30-12:30○○○○○○
10-11○○
10-10:30○
9:30-11○○○
    • good
    • 0

ご質問の内容と若干違うので参考程度にして下さい。



9-11は9:00-11:00と言う形式に直します。
2行で9:00と9:30を分けているのを単純に9:00,9:30,10:00~~とします。
そうすると

=IF(AND(VALUE(LEFT($A2,FIND("-",$A2)-1))<=B$1,VALUE(MID($A2,FIND("-",$A2)+1,5))>=B$1),"○","")

でおっしゃるようなことが可能です。
    • good
    • 0

質問者様の悪戦苦闘しているエクセルを直接見ることが出来れば回答が出来るかもしれませんが、現在のご質問内容では不明な部分が多くて回答し難いです。



時間をハイフンで区切られたデータがどのようなもので、どのような表に、どのような結果になるように記述したいのでしょうか?

この回答への補足

早速ありがとうございます。
まず、データは"9-11"と文字列で書かれています。
そして表のヘッダーは、1行目のB列に"9"、D列に"10"、F列に"11"という風に一列おきに時を表す数字が記入されており、2列目には分を表す"0"、"30"が交互に入っています。
つまり、B列は9時ジャストを表す列、C列は9時30分を表すということです。
そして、A列の3行目から、"9-11"、"9:30-12:30"とデータが続いているのです。
・3行目に"9-11"とあった場合、B3~E3までに○印を入れる。
・4行目に"9:30-12:30"の場合はC4~H4までに○印を入れる
ということをしたいのです。

補足日時:2007/12/05 13:16
    • good
    • 0

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