Вы можете использовать Google Apps Script для выполнения поставленной задачи в Google Sheets. Скрипт будет устанавливать флажок, анализировать диапазон данных, заменять значения и возвращать флажок в исходное состояние. Вот пример того, как вы можете это сделать:
1. Откройте Google Sheets.
2. Перейдите в «Расширения» -> «Apps Script».
3. Вставьте следующий код:
```javascript
function analyzeRange() {
// Получить активный лист
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Установить значение флажка в C12 на true
const checkboxCell = sheet.getRange('C12');
checkboxCell.setValue(true);
// Получить данные из диапазона E12:O12
const dataRange = sheet.getRange('E12:O12');
const values = dataRange.getValues()[0]; // Получаем первый (и единственный) ряд
// Проанализировать и заменить значения
for (let i = 0; i < values.length; i++) {
if (values[i]) { // Если ячейка не пустая
values[i] = 'Выдано'; // Заменяем на "Выдано"
}
}
// Установить новые значения в диапазон
dataRange.setValues([values]); // Записываем измененные значения в диапазон
// Установить значение флажка в C12 обратно на false
checkboxCell.setValue(false);
}
```
### Пояснение кода:
- `getActiveSpreadsheet()` и `getActiveSheet()` используются для получения активного листа, на котором будет проводиться анализ.
- `getRange('C12')` и `setValue(true)` используются для установки значения в ячейку C12 на `true`.
- `getRange('E12:O12')` и `getValues()` извлекают значения из указанного диапазона.
- Цикл `for` проходит по всем ячейкам диапазона, заменяя не пустые значения на строку "Выдано".
- `setValues([[...]])` обновляет значения в указанном диапазоне.
- В конце скрипт возвращает значение ячейки C12 на `false`.
### Применение относительных ссылок:
Если вы хотите использовать скрипт в других строках, вам нужно изменить код так, чтобы он работал с текущей строкой. Например:
```javascript
function analyzeRow() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const currentRow = sheet.getActiveCell().getRow(); // Получаем номер текущей строки
const checkboxCell = sheet.getRange(`C${currentRow}`);
checkboxCell.setValue(true);
const dataRange = sheet.getRange(`E${currentRow}:O${currentRow}`);
const values = dataRange.getValues()[0];
for (let i = 0; i < values.length; i++) {
if (values[i]) {
values[i] = 'Выдано';
}
}
dataRange.setValues([values]);
checkboxCell.setValue(false);
}
```
Теперь вы можете выбрать любую ячейку в строке, для которой хотите выполнить анализ, и запустить `analyzeRow()`. Скрипт автоматически определит, где находится строка и будет работать с ней.