Использование скрипта приложений для подсчета флажков в Google Sheets
9 марта 2023 г.У вас есть флажки в электронной таблице, и вы захотите их легко посчитать. Что ж, этот скрипт, который я предоставлю, поможет вам именно в этом. Неопытные программисты могут легко следовать инструкциям и добавлять этот скрипт в свои проекты.
Намасте! Это Нибеш Хадка. ==Я фрилансер, разрабатываю скрипты для автоматизации приложений Google Workspace, таких как Gmail, Google Таблицы, Google Документы и т. д.==
Для тех, кто не занимается кодированием
Если вы не кодер и не хотите утруждать себя утомительным объяснением, вы можете просто выполнить следующие действия:
- Откройте редактор скриптов. В электронной таблице перейдите на вкладку расширений и откройте скрипт приложения, как показано на изображении выше.
2. Удалите весь код из code.gs. Затем скопируйте и вставьте код из раздела Полный код в этом блоге.
3. Сохраните и перезагрузите электронную таблицу. Теперь снова откройте скрипт приложений, следуя инструкциям на шаге 1 (иногда скрипт не работает без сохранения и перезагрузки).
После этого вам просто нужно внести небольшое редактирование, как указано ниже.
Полный код
Вот полный сценарий этого блога:
// make minor change here.
// insert the number equivalent of your column with checkboxes here inside square boxes, like [1,2]
// for instance 1 for A, 5 for E, and so on.
const checkBoxColNumber = [5, 8];
/**
* The function creates a custom menu in spreadsheet
*/
function menu() {
SpreadsheetApp.getUi()
.createMenu("Count Checkboxes")
.addItem("Count Checkboxes", "countCheckbox")
.addToUi();
}
/**
* OnOpen is resposbile to insert menu to spreadsheet.
*/
function onOpen(e) {
menu();
}
/**
* CountCheckbox goes through the active sheet and counts the number of checked and unchecked box among non-empty rows
*/
function countCheckbox() {
// get sheet and data
let sheet = SpreadsheetApp.getActiveSheet();
let data = sheet.getDataRange().getValues();
// remove first header column
data.shift();
// initate counts as zero
let trueCount = 0;
let falseCount = 0;
// value count will be a nested list but as same length as Counting Checkboxes
let checkBoxColValueCounts = [...checkBoxColNumber];
// loop through checkBoxColNumber list and data list
for (let j = 0; j < checkBoxColNumber.length; j++) {
for (let i = 0; i < data.length; i++) {
// [...new Set(data[i])].filter(String) check to get unique value if its either just true or false
if ([...new Set(data[i])].filter(String)[0] === true || [...new Set(data[i])].filter(String)[0] === false || data[i].join("") === "") { continue; }
// if values is true push increase true count else false count
if (data[i][checkBoxColNumber[j] - 1] === true) {
trueCount += 1;
} else {
falseCount += 1;
}
}
// add true and false count as nested list in respective place
checkBoxColValueCounts[j] = [trueCount, falseCount];
// reset
//console.log(checkBoxColValueCounts)
trueCount = 0;
falseCount = 0;
}
// create alert string with all info embeded
let countStatsString = "";
for (let j = 0; j < checkBoxColValueCounts.length; j++) {
countStatsString += `n In the ${checkBoxColNumber[j]} column, There are ${checkBoxColValueCounts[j][0]} boxes checkd and ${checkBoxColValueCounts[j][1]} unchecked boxes among non-empty rows.`
}
// alert the result
SpreadsheetApp.getUi().alert(countStatsString);
}
Использование сценария в электронной таблице
Чтобы этот скрипт работал в вашей электронной таблице, вам нужно внести небольшое изменение в код.
// make minor change here.
// insert the number equivalent of your column with checkboxes here inside square boxes, like [1,2]
// for instance 1 for A, 5 for E, and so on.
const checkBoxColNumber = [5, 8];
Посмотрите этот код в начале, вам нужно будет [5, 8]
заменить эти значения числовым эквивалентом букв, представляющих столбцы со значениями checkbox в вашем электронная таблица. Например, 5 для E и 8 для H. Если это всего один столбец, просто вставьте одно значение в квадратное поле без запятой, например [5].
Навигация по меню
После этого вы должны сохранить сценарий и перезагрузить электронную таблицу. Вы должны увидеть меню в своей электронной таблице с заголовком «Count Checkboxes», как на изображении ниже.
Когда вы запустите эту функцию, вы увидите окно предупреждения с суммой всех отмеченных и снятых флажков для непустых строк в вашей электронной таблице.
Спасибо за уделенное время
Если вы хотите, чтобы я писал короткие и быстрые блоги, подобные этим, оставляйте запросы в комментариях.
==Я создаю надстройки для Google, а также могу написать для вас скрипты Google Apps. Если вам нужны мои услуги, дайте мне знать .==
Оригинал