使用谷歌脚本对谷歌表中的数据进行排序(使用自定义排序顺序)

时间:2016-10-06 09:42:54

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

正如标题所说,我需要根据包含som等级名称的第一列对数据进行排序。我不是按字母顺序排序,而是按照我自己定义的顺序排序。

示例:

Admin_contact
Commissioner
Battalion Chief
Paramedic

我希望使用google脚本按顺序列出它们,以便在编辑数据时自动排序。

希望有人可以帮助我实现这个目标

2 个答案:

答案 0 :(得分:1)

当然,您可以在电子表格中创建一个google脚本函数onEdit(),每次编辑时都会触发该函数。

有几种方法可以做到这一点。其中一个最明显的(可能不是最好的,因为它经常循环数据):

  1. 使用getLastColumn()getLastRow()获取所有数据。然后使用2个数组。 1是当前的,1是排序的。
  2. 遍历当前数组,如果data[i][0]与排名匹配,则将其输出到排序数组
  3. 完成一个循环后,更改为您期望的排名(将它们保存在一个数组中,然后使用for循环rank[n]
  4. 循环数组,直到你用完了rank.lenght
  5. 所以它会像

    那样
    function onEdit()
    //Get the data
    rank = [rank1, rank2, rank3]
    
    for (n=0 ; n < rank.lenght; n++) {
      for (i = 0; i < data.lenght; i++)
        if (data[i][0] === rank[n]) {
          sorted[x] = data[i];
          x++;
        }
      }
    }
    

    虽然我建议你这样做,但你可以手动运行它而不是onEdit。或者你可以设置它,只有在最后一行被编辑,然后才能激活它(如果编辑的行小于return

    ,则在脚本的开头创建getLastRow()+1

答案 1 :(得分:0)

试试这段代码:

Enable-MailUser -Identity "joe.bloggs" -ExternalEmailAddress 'joe.bloggs@domain.co.uk'

Get-MailUser -Identity "joe.bloggs" | Enable-Mailbox

Add-MailboxPermission -Identity "joe.bloggs" -User MailboxAdmins -AccessRights Fullaccess -InheritanceType all

Set-MailboxRegionalConfiguration -Identity "joe.bloggs" -TimeZone "GMT Standard Time" -DateFormat "dd/MM/yyyy" -Language "en-GB" -TimeFormat "HH:mm"

以下是自定义功能的使用方法: enter image description here

第2列的相同示例: enter image description here