A列に入力時刻、B列にDoing/Done、C列に開始時刻、D列に終了時刻を記載するものとします。
この時、B列の状態によって表示内容を変化させたいのはC列とD列ですので、式はC列とD列のセルに記述することになります。
判断条件は、こう考えるとわかりやすいかもしれません。
C列はB列が"Doing"の時にA列の値を表示したい。
また"Done"になっても消したくない(表示したい)。
D列はB列が"Done"の時にA列の値を表示したい。
これを式にすると、例えば2行目なら
C2セル
=if(B2="Doing",A2,If(B2="Done",A2,""))
D2セル
=if(B2="Done",A2,"")
のようになります。
C2セルの式はもう少しスマートに、
=if(OR(B2="Doing",B2="Done"),A2,"")
と記述しても同じ結果が得られます。
お試しください。
追記
参考までにVBAで処理する場合のサンプルです。
対象シートのシートモジュールとして以下のような処理を記述すれば、B列の変更時にA列の値をC/D列に写すことができます。
'シート内に変更があった場合のイベント
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lRow As Long
'B列を変更した場合
If Target.Column = 2 Then
'対象行取得
lRow = Target.Row
'変更後のB列の値
Select Case Target.Value
Case "Doing"
'A列の値をC列に設定
Cells(lRow, 3).Value = Cells(lRow, 1)
Case "Done"
'A列の値をD列に設定
Cells(lRow, 4).Value = Cells(lRow, 1)
End Select
End If
End Sub
今回はVBAでの質問ではありませんでしたし、環境によってはマクロは私用したくない場合もあるかと思いますが、興味があればお試しください。
※ExcelではなくGoogleSpreadSheetなのでVBAは使用できませんでした。すみません。m(_ _)m
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/02 03:29
2017/02/03 05:37
2017/02/08 06:29 編集
2017/02/10 07:24
2017/02/10 08:24 編集
2017/02/10 08:54