グーグルフォームでラジオボタン形式で出勤退勤を打刻し、スプレッドシートへ送り勤怠管理をするものを作っています。
VLOOKUPで スプレッドシートに飛んできた値を検索、そしてその値を各月のシートへ移行させて打刻しているのですが、
日付でVLOOKUPしてしまっているため深夜、つまり日付を超えた場合の対応ができません。
どのような関数であれば日付をまたいだ数字を正しい日付へもってこれますか?
=IF(ISERROR(VLOOKUP(DATE(YEAR(A14),MONTH(A14),DAY(A14))&"退社",'回答のコピー'!A:D,4,FALSE)),"",VLOOKUP(DATE(YEAR(A14),MONTH(A14),DAY(A14))&"退社",'回答のコピー'!A:D,4,FALSE))
こちらが現在の関数です。
こちらでフォームから回答した値の一覧から該当する日付の退社の区分のものがあったときその値を出力するというものです。
しかし日付をまたいで26時などに退勤した場合は次の日に打刻されてしまいます。
そのため、その日の退勤を切ったことにならず、給料が発生しません。
すみませんが、フォームのボタンと管理されているデータのイメージが持てません(だったら回答するなという話ではあります)。仕様を開示していただくことは可能でしょうか?。具体的には、午前2時に出勤する可能性があると、それが出勤か退勤かデータでは区別ができないように思えてなりません。
フォームのボタンを複数設置し、それぞれ退勤、出勤、休憩開始、休憩終了とテキストを設定することで、スプレッドシートには押されたラジオボタンの文字列と押した時間が送られてくることになります。その一覧から出勤という文字列と日にちからvlookupでそれぞれの月の勤怠管理シートの正しい月の正しい箇所に引っ張ってくる形になります。これにより区別することができます。仕様としては一度全ての勤怠の記録をどういった区分か、日時といったデータの一覧をフォームから出力し、そこから各シートへ引っ張り出す仕様です。