お世話になっております。
日報提出アプリを作っているのですが、タイトルの通り前回入力した内容を初期値として設定することは可能でしょうか?
具体的に日報フォームには
①氏名
②今日作業した内容
③明日作業する内容
の入力項目があり、
本日の日報で
①鈴木
②打合せ
③作業
と入力した場合、
明日の日報を入力する際には
①鈴木(手入力)
②作業(初期値)
③調査(手入力)
と、昨日の③を、今日の②にが転記されていてほしいのです。
INITIAL VALUEのExpressionで書けそうな気がするのですが、昨日の③の値を持ってくる方法が分からずうまくいきませんでした。
お手数ですが、どなたかご教授いただけないでしょうか。
まず前提として、以下のようなスキーマとします。
テーブル名:日報
カラム:[ID] , [氏名] , [今日作業した内容] , [明日作業する内容]
明日、昨日という日付の前後関係をTraceするためにはDATEタイプのカラムがあることが必要ですが、このケースでは、例えば日報が必ずしも連続した日付では作成されない(ありえるケースとして、日報作成はWORKDAYのみ。金曜日の次は翌週の月曜日などの関係。また、国民の休日などで日付が連続しない場合も)ことを想定します。但し、例えばカラムに「日報作成日」というカラムを追加しても問題ありません。新規に日報を作成する際のロジックに日付のカラムを関係させず別のロジックで同一氏名で作成された前回の日報のROWを参照し、INITIAL VALUEとして明日作業する内容を今日作業した内容のVALUEとして引き出すロジックを組み込みます。
要点としては、[今日作業した内容]のInitial Valueの設定、つまり関数の入力です。
ANY(Select(日報[明日作業する内容],And([氏名]=[_THISROW].[氏名],
[_rowNumber]=MAX(Select(日報[_rowNumber],and([氏名]=[_THISROW].[氏名], [_rowNumber]<[_THISROW].[_rowNumber]))))))
この関数では、新規に日報を作成の際、既に入力されている日報のうち、同じ氏名で、且つ一つ前の日報をスプレッドシートの行の番号をベースに前回作成されたものの日報のROW から明日作業する内容のカラムのVALUEを計算する関数です。
ご覧の通り、DATEのカラムを参照せず、実際に前回の日報作成日から間隔があいている(連続したDATEではない)状態でも確実に前回作成の日報を参照し、VALUEを引っ張ってこれます。
お試し下さい。
辻さん
早速試させていただいたところ、想定していた動作になりましたのでご連絡いたします。
ありがとうございました。
使用されている関数の意味や意図については、じっくり確認させていただきます。
土曜のところありがとうございました。重ねてお礼申し上げます。