如何使用脚本按日期自动对Google表格进行排序

时间:2019-08-09 00:49:35

标签: javascript sorting google-apps-script google-sheets google-sheets-api

我正在尝试运行一个脚本,该脚本将按日期对我的Google工作簿中的最新日期进行自动排序。

例如: 2019年8月30日星期一 2019年8月29日星期日 2019年8月15日星期三 2019年8月12日星期六 2019年7月31日星期二

我在网上找到了一个脚本,可以很好地正确排序数字数据,但不能对日期进行排序。

现在,脚本(如下所示)通过将一年中的月份或一周中的几天分组在一起来对日期进行排序。

例如: 2019年8月1日星期二 2019年七月15日星期二 2019年8月14日星期三 2019年8月7日星期三 2019年8月15日星期四 2019年8月16日星期五 2019年7月18日星期五 2019年3月5日,星期一

请参见下面的脚本...

此外,下面是测试表的链接,该链接将向您展示如何格式化我的表。

https://docs.google.com/spreadsheets/d/1AhjFE6jTAwKu4e6zS3fOADvJph0RcOhttgIv1vuAkks/edit?usp=sharing

您将在工作表的底部找到4个工作表。 1.主线索列表 2.布兰特 3.柯斯蒂 4.比尔

应如何工作:

第1步。销售员从主销售线索中将其姓名分配给客户

第2步。与客户相关的数据被转移到销售员的个人工作表(我使用Integromat来执行此任务-与Zapier类似)

第3步。每次销售人员打开他们的个人工作表或单击刷新时,根据“潜在客户日期”下B列中找到的日期的最新客户应出现在工作表的顶部,并向下移动到最古老的。

要测试其当前工作方式,

第1步。在Google表格中,点击“主线索列表”表 步骤2.将6个具有不同日期的客户分配给Brant:2个星期一-不同的日期,2个星期三-不同的日期,2个星期五-不同的日期 步骤3.打开Brant的个人表 步骤4.从Brant的个人内部点击刷新按钮以触发自动排序 第5步。请注意,日期的排序不正确-使用“天”分组。

链接到测试Google表格 https://docs.google.com/spreadsheets/d/1AhjFE6jTAwKu4e6zS3fOADvJph0RcOhttgIv1vuAkks/edit?usp=sharing

与脚本编辑器中的脚本完全相同:

var SORT_COLUMN_INDEX = 2;
var ASCENDING = false;
var NUMBER_OF_HEADER_ROWS = 1;

var activeSheet;

function autoSort(sheet) {
  var range = sheet.getDataRange();

  if (NUMBER_OF_HEADER_ROWS > 0) {
    range = range.offset(NUMBER_OF_HEADER_ROWS, 0);
  }

  // Perform the actual sort.
  range.sort( {
    column: SORT_COLUMN_INDEX,
    ascending: ASCENDING
  } );
}

function onEdit(event) {
  var editedCell;

  activeSheet = SpreadsheetApp.getActiveSheet();
  editedCell = activeSheet.getActiveCell();

  if (editedCell.getColumn() == SORT_COLUMN_INDEX) {
    autoSort(activeSheet);
  }
}

function onOpen(event) {
  activeSheet = SpreadsheetApp.getActiveSheet();
  autoSort(activeSheet);
}

function onInstall(event) {
  onOpen(event);
}

我花了很多时间对此表示感谢:)

0 个答案:

没有答案