簡體   English   中英

如何在 Google 工作表中添加新行,將今天的日期作為第一行,從下面的行復制公式?

[英]How to add new row in Google sheet with todays date as top row, copying formulas from below row?

我正在嘗試每天晚上在 Google 表格中自動創建一個新行,並將今天的日期作為第一行。

我添加了以下腳本並設置了一個每日觸發器,它工作正常,但我在幾列中有公式,我希望將它們保留在新添加的行中。 有人可以幫我編輯腳本來做到這一點嗎? 謝謝`

function addNewRow() {
var spreadsheet = SpreadsheetApp.openById("1xwF-kM6KvOJYAfsmcDVBgO0yv6ZcFFMFvH33U7SzGtc");
var sheet = spreadsheet.getSheetByName("Attendance");
sheet.insertRowBefore(2);
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();

today = dd + '/' + mm + '/' + yyyy;
sheet.getRange(2,3).setValue(today);

` 在此處輸入圖像描述

嘗試將此公式放在 A1 中,刪除 A 中的所有其他值:C。 這將生成一組“周名”、“周號”。 和“日期”按降序從今天開始到 11 月 1 日。

並且由於數據是在A1中按公式生成的,因此在第2行中插入行不會影響公式的結果。

您可以每天使用簡單的插入行 function 來執行行插入操作,而無需關心 A:C 中的日期和星期值。

=ArrayFormula({
 {"Day No.","Day","Date"};
 {SPLIT(
  LAMBDA(DATES,
   CHOOSE(WEEKDAY(DATES),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")&";"
   &WEEKDAY(DATES)&";"
   &TEXT(DATES,"dd/mm/yyyy")
  )(SORT(DATE(2022,11,SEQUENCE(DAY(TODAY()))),1,FALSE)),
 ";")}
})

這次真是萬分感謝。 我昨天一整天都在嘗試,想出了這個在插入新行后明確地將公式推到每一行並填寫日期的方法:

function addNewRow() {
var spreadsheet = SpreadsheetApp.openById("1xwF-kM6KvOJYAfsmcDVBgO0yv6ZcFFMFvH33U7SzGtc");
var sheet = spreadsheet.getSheetByName("Attendance");
sheet.insertRowBefore(2);
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();

var cell = sheet.getRange("B2");
cell.setFormula("=WEEKDAY(C2,1)");
var cell2 = sheet.getRange("A2");
cell2.setFormula('=TEXT(B2,"dddd")');
var cell2 = sheet.getRange("D2");
cell2.setFormula('=WEEKNUM(C2)');

today = dd + '/' + mm + '/' + yyyy;
sheet.getRange(2,3).setValue(today);


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM