GCP/Apps Script

Apps Script๋กœ Google Sheets์˜ ์ •๋ ฌ(sort) ์ ์šฉํ•˜๊ธฐ

whistory 2023. 3. 7. 16:51
๋ฐ˜์‘ํ˜•

๐Ÿ’ก Apps Script๋กœ Google Sheets์—์„œ ์ •๋ ฌ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค.

     ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์ฟผ๋ฆฌ๋ฌธ์˜ order by ์ ˆ์—์„œ ์ •๋ ฌ์„ ํ•ด ์ค„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ,
     Script๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ•ด๋ณธ๋‹ค.   

 

 

 

์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค.

์ผ๋‹จ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒซ๋ฒˆ ์งธ ํ–‰์ธ country ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•ด๋ณด์ž.

 

์ •๋ ฌ์€ sort() ๋ฅผ ์ด์šฉํ•ด ์ˆ˜ํ–‰ํ•œ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ sheet ์•ˆ์— range ์˜์—ญ์—์„œ sort๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

function createSort() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("tempature_all");
  const range = sheet.getRange("A:E");
  
  range.sort(1);
}

 

ํ—ค๋” ํƒ€์ดํ‹€์ด ์—†๋‹ค.

 

 

'A:E' ๊ฐ€ ์•„๋‹Œ

'A1:En' ์œผ๋กœ ๋ณ€๊ฒฝ ํ•ด์ค˜์•ผ๊ฒ ๋‹ค.

function createSort() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("tempature_all");
  const range = sheet.getRange("A2:E"+sheet.getLastRow());
  
  range.sort(1);
}

 

 

 

1๋ฒˆ ํ–‰์ธ country์— ๋Œ€ํ•ด์„œ ์ •๋ ฌ์„ ํ•ด๋ดค๋‹ค.

1๋ฒˆ ํ–‰์ธ country์™€, 2๋ฒˆ ํ–‰์ธ date์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ์ ์šฉํ•ด๋ณธ๋‹ค.

function createSort() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("tempature_all");
  const range = sheet.getRange("A2:E"+sheet.getLastRow());
  
  range.sort([1,2])
}

 

 

 

 

 

1๋ฒˆ ํ–‰์ธ coutry๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ

2๋ฒˆ ํ–‰์ธ date๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์„ ์ง„ํ–‰ํ•ด ๋ณธ๋‹ค.

sort() ์•ˆ์— ํ–‰ ๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹Œ ํ–‰ ๋ฒˆํ˜ธ์™€ ์ •๋ ฌ๋ฐฉ ์‹ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

function createSort() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("tempature_all");
  const range = sheet.getRange("A2:E"+sheet.getLastRow());
 
  range.sort([{column: 1, ascending: true}, {column: 2, ascending: false}]);
}

 

Class Range  |  Apps Script  |  Google Developers

 

Class Range  |  Apps Script  |  Google Developers

์ด ํŽ˜์ด์ง€๋Š” Cloud Translation API๋ฅผ ํ†ตํ•ด ๋ฒˆ์—ญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Switch to English ์˜๊ฒฌ ๋ณด๋‚ด๊ธฐ Class Range ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. ๋ฒ”์œ„ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ

developers.google.com

 

 

 

 

 

์‘์šฉํ•˜๊ธฐ

๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค, ํ–‰ ๋ณ„๋กœ ์ •๋ ฌํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณธ๋‹ค.

 

์ผ๋‹จ ๋ฒ„ํŠผ์„ ์ƒ์„ฑํ•œ๋‹ค.

 

- country (1๋ฒˆ์งธ ํ–‰) ์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ, ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

- air_avg (3๋ฒˆ์งธ ํ–‰) ์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ, ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

 

๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ๋ฒ„ํŠผ๋“ค์ด๋‹ค.

 

 

 

 

/*
 * country (1๋ฒˆํ–‰) ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ ํ˜ธ์ถœ๋ถ€
 */
function sortAsc1() {
    // ์ฒซ๋ฒˆ์งธํ–‰ : 1
    // ๋‚ด๋ฆผ์ฐจ์ˆœ : true
    executeSort(1, true);
}
/*
 * country (1๋ฒˆํ–‰) ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ˜ธ์ถœ๋ถ€
 */
function sortDesc1() {
    // ์ฒซ๋ฒˆ์งธํ–‰ : 1
    // ์˜ค๋ฆ„์ฐจ์ˆœ : false
    executeSort(1, false);
}

/*
 * temp_air_avg (3๋ฒˆํ–‰) ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ ํ˜ธ์ถœ๋ถ€
 */
function sortAsc3() {
    // ์„ธ๋ฒˆ์งธํ–‰ : 3
    // ๋‚ด๋ฆผ์ฐจ์ˆœ : true
    executeSort(3, true);
}
/*
 * temp_air_avg (3๋ฒˆํ–‰) ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ˜ธ์ถœ๋ถ€
 */
function sortDesc3() {
    // ์„ธ๋ฒˆ์งธํ–‰ : 3
    // ์˜ค๋ฆ„์ฐจ์ˆœ : false
    executeSort(3, false);
}

/*
 * ์ •๋ ฌ๊ธฐ๋Šฅ ์ˆ˜ํ–‰๋ถ€
 */
function executeSort(col, asc) {
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const sheet = ss.getSheetByName("tempature_all");
    const range = sheet.getRange("A2:E"+sheet.getLastRow());
    range.sort({column: col, ascending: asc})
}

๋ฒ„ํŠผ ์œ„์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๊ณ  ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด, ํ•ด๋‹น ๋ฒ„ํŠผ(์ด๋ฏธ์ง€)๊ฐ€ ์„ ํƒ๋œ๋‹ค.

[…] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  [์Šคํฌ๋ฆฝํŠธ ํ• ๋‹น] ์„ ํด๋ฆญํ•ด ์œ„์—์„œ ์ž‘์„ฑํ•œ ํ•จ์ˆ˜๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

 

 

country (1๋ฒˆ ํ–‰) ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ ์ˆ˜ํ–‰

country (1๋ฒˆ ํ–‰) ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ์ˆ˜ํ–‰

 

 

temp_air_avg (3๋ฒˆ ํ–‰) ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ ์ˆ˜ํ–‰

temp_air_avg (3๋ฒˆ ํ–‰) ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ์ˆ˜ํ–‰

๋ฐ˜์‘ํ˜•