- Вы хотите получить частоту значений в ячейках "A2: A" на листе
CURRENT PALLETS AWAITING PROCESSING
в вашей общей электронной таблице. - Например, в случае значения
Pacific Magazines - Nov 2019 Donation
вы хотите поместить Pacific Magazines - Nov 2019 Donation
в столбец «A» и частоту 45
в столбец «B» в другой электронной таблице.
- Вы хотите добиться этого с помощью Google Apps Script.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Поток:
Последовательность действий этого примера сценария выглядит следующим образом.
- Получите значения из лист.
- Рассчитайте частоту.
- Создать объект и преобразовать его в массив. И в этом случае массив сортируется.
- Положите значения.
Пример сценария:
В этом сценарии результат значения заносятся в лист destinationSheetName
в таблице destinationSpreadsheetId
. Перед запуском скрипта установите эти переменные.
function myFunction() {
var destinationSpreadsheetId = "###"; // Please set the destination Spreadsheet ID.
var destinationSheetName = "Sheet1"; // Please set the destination sheet name of the Spreadsheet.
var destinationSS = SpreadsheetApp.openById(destinationSpreadsheetId)
var destinationSheet = destinationSS.getSheetByName(destinationSheetName);
var sourceSS = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = sourceSS.getSheetByName("CURRENT PALLETS AWAITING PROCESSING");
// Retrieve the values from the sheet.
var values = sourceSheet.getRange(2, 1, sourceSheet.getLastRow() - 1, 1).getValues();
// Calculate the frequency.
var obj = values.reduce(function(o, [a]) {
// o[a] = a in o ? o[a] + 1 : 1;
if (a) o[a] = a in o ? o[a] + 1 : 1; // Modified
return o;
}, {});
var ar = Object.keys(obj).map(function(e) {return [e, obj[e]]});
// Put the values.
destinationSheet.getRange(destinationSheet.getLastRow() + 1, 1, ar.length, ar[0].length).setValues(ar);
}
- Если вы хотите отсортировать массив результатов, поставьте
ar.sort(function(a, b) {return(b[1] - a[1])})
после var ar = Object.keys(obj).map(function(e) {return [e, obj[e]]});
.
Ссылки:
Если я неправильно понял ваш вопрос и это было не то направление, которое вы хотите, я прошу прощения.