• ベストアンサー

時間指定したセル内に名前を反映させるには?

予約表を作成してます。時間は1日最大3つ入る可能性があり、時間ごとに色をつける書式設定をつけました。ピンクのところの名前1をB1(時間のスタートした時間)に入れ、名前2、名前3をそれぞれ次の予約のスタートした時間にいれるにはどのような関数をいれればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

横方向で時間が重複してあるので、範囲指定無しの個別指定で B2に =IF(B1=$M$2,$O$2,IF(B1=$P$2,$R$2,IF(B1=$S$2,$U$2,""))) として右にコピーでいかがですか。

peace5577
質問者

お礼

できました!ありがとうございます。

その他の回答 (2)

  • SI299792
  • ベストアンサー率47% (774/1619)
回答No.3

B1~K1を選択 条件付き書式、新しいルール 数式を使用して、書式設定するセルを決定 =AND(B$1>=$M2,B$1<$N2) 書式、塗りつぶし。赤紫。 OK。OK。 条件付き書式、新しいルール 数式を使用して、書式設定するセルを決定 =AND(B$1>=$P2,B$1<$Q2) 書式、塗りつぶし。水色 OK。OK。 条件付き書式、新しいルール 数式を使用して、書式設定するセルを決定 =AND(B$1>=$S2,B$1<$T2) 書式、塗りつぶし。青 OK。OK。

peace5577
質問者

お礼

ありがとうございます!

  • NuboChan
  • ベストアンサー率47% (785/1650)
回答No.1

求められている関数ではありませんが、VBAでの回答です。 (初心者のコードなので不具合あればご理解ください。) Option Explicit Sub FindLastColoredCells() Dim i As Long Dim lastCol As Long Dim pinkLast As Long Dim blueLast As Long Dim aquaLast As Long ' 1行目の最後の列を探す lastCol = Cells(1, Columns.Count).End(xlToLeft).Column ' ピンク色の最後のセルを探す For i = 2 To lastCol If Cells(2, i).Interior.ColorIndex = 7 Then pinkLast = i End If Next i ' 水色の最後のセルを見つける For i = 2 To lastCol If Cells(2, i).Interior.ColorIndex = 8 Then aquaLast = i End If Next i ' 青色の最後のセルを見つける For i = 2 To lastCol If Cells(2, i).Interior.ColorIndex = 11 Then blueLast = i End If Next i ' 結果を出力 Range("M1") = Range("B1") Cells(1, 14).Value = Cells(1, pinkLast).Value Cells(1, 15).Value = Cells(1, pinkLast).Value Cells(1, 16).Value = Cells(1, aquaLast).Value Cells(1, 17).Value = Cells(1, aquaLast).Value Cells(1, 18).Value = Cells(1, blueLast).Value Range("M1:R1").NumberFormatLocal = "h:mm" End Sub

peace5577
質問者

お礼

ありがとうございます

関連するQ&A