2017-01-30 9 views
0

Googleフォーム/シートをオーダーツールとして使用しようとしています。私はすでにフォームを作成し、結果のスプレッドシートにスクリプトを設定して注文を要約し、ユーザーに確認メールを送信します。その電子メールでは、フォーム提出の行番号を受け取り、それを注文番号として使用します。行番号を抽出してセルに挿入する必要があります

これらの列は、(タイムスタンプ、電子メールアドレス、サイト、要求されたアイテム、リクエスタ/ルーム番号、サイト予算コード&追加情報)の形式で入力され、残りの列は手動で入力されます。

私の問題は、上位の方がレコードを保存するためにすべてのデータを抽出できるようにすることです。私が知る限り、Googleスプレッドシートには行/列を印刷する機能がないため、行番号を抽出してシートのOrder#列に挿入したいと考えています。

誰でもスクリプトの作成を手伝ってもらえますか?ここでは、スプレッドシートへのリンクは次のとおりです。https://docs.google.com/spreadsheets/d/1LlPf4KkV-c1az-vn2ES0TFOhAOipnicvkj3cPye95IY/edit#gid=763456666

感謝!!あなたは注文# 'sがなりたい列の行1で

答えて

0

場所この:

=arrayformula(if(ROW(A1:A) = 1, "Order #", IF(ISBLANK(A1:A),,ROW(A1:A)))) 

これが配置されます最初のIFステートメントのために、最初の行に#を注文してください。後続の各行では、その行に空白でない行番号IFセルAが配置されます。 Googleフォームはここにタイムスタンプを設定し、すべての提出にセルAの値を設定する必要があります。

ISBLANK()のTRUEチェックでは2番目のIFステートメントに値がないため、価値がない。ここで私は実際に値を入れ、他の数式やスクリプトに干渉する可能性があります。 "

+0

ありがとう@Karl_S。このコードは実際には増分されません。私はちょうど次のコードを使用して正しく動作していると思います: 'function addOrder(){ Logger.log(" [METHOD] onFormSubmit "); var orderNumber = SpreadsheetApp.getActiveSheet()。getLastRow(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var lastRow = sheet.getLastRow() var lastCol = sheet.getLastColumn() var lastCell = sheet.getRange(lastRow、lastCol); lastCell.setValue(orderNumber); } ' –

+0

私はあなたにカスタムコードを使用しない答えを与えました。これは、必要なものを得るためのGoogleのスプレッドシート式でした。スクリプトはありません。そしてそれはそれ自身を列全体に適用します。 –

+0

私はあまりにも早く話したように見えます。新しいフォーム提出が入力されるたびに、次のエラーが表示されます。「P29のデータを上書きするため、配列結果が展開されませんでした」 –

関連する問題