Всем привет!
Никак не могу решить задачу. В столбцах A-E вводятся значения. Одновременно в одной строке могут быть введены значения в нескольких столбцах, либо только в один, Нужно, чтобы в столбце F выводился анализ данных. По идее в столбцы A-E должны вводиться только числа, с которыми можно производить математические действия. Числа могут вводиться положительные, отрицательные, целые и с дробной частью. Дробная часть отделяется запятой "," Бывает такое, что пользователь вводит в ячейки что-то лишнее, например может быть 500! или 40" или 30е, или 50.54. В случае, если в ячейку вводится не числовое значение, формулы подсчитать данные естественно не могут. Раньше для проверки я использовал формулу =ЕЧИСЛО(), а сейчас появилась необходимость проверять это же самое, но только с помощью скрипта. Никак не могу написать реально рабочий скрипт, чтобы он проверял все непустые строки, столбцы A-E, по заданному критерию (пропуская пустые ячейки), и в случае, если в строке все найденные значения числовые, тогда выводил в столбец F текст "Все ок", а если есть хоть одна ячейка с нечисловым значением, выводил слово "Лишние символы". Значения с разделителем-точкой должны считаться "Лишние символы", а с запятой "Все ОК".
Пример скрипта, уже ИИ пробовал))) не получается. Значения с запятой как невалидные считает. Подскажите, пожалуйста как решить мою задачу! Благодарю!
Никак не могу решить задачу. В столбцах A-E вводятся значения. Одновременно в одной строке могут быть введены значения в нескольких столбцах, либо только в один, Нужно, чтобы в столбце F выводился анализ данных. По идее в столбцы A-E должны вводиться только числа, с которыми можно производить математические действия. Числа могут вводиться положительные, отрицательные, целые и с дробной частью. Дробная часть отделяется запятой "," Бывает такое, что пользователь вводит в ячейки что-то лишнее, например может быть 500! или 40" или 30е, или 50.54. В случае, если в ячейку вводится не числовое значение, формулы подсчитать данные естественно не могут. Раньше для проверки я использовал формулу =ЕЧИСЛО(), а сейчас появилась необходимость проверять это же самое, но только с помощью скрипта. Никак не могу написать реально рабочий скрипт, чтобы он проверял все непустые строки, столбцы A-E, по заданному критерию (пропуская пустые ячейки), и в случае, если в строке все найденные значения числовые, тогда выводил в столбец F текст "Все ок", а если есть хоть одна ячейка с нечисловым значением, выводил слово "Лишние символы". Значения с разделителем-точкой должны считаться "Лишние символы", а с запятой "Все ОК".
Пример скрипта, уже ИИ пробовал))) не получается. Значения с запятой как невалидные считает. Подскажите, пожалуйста как решить мою задачу! Благодарю!
Код Выделить
function proverka() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const dataRange = sheet.getDataRange();
const data = dataRange.getValues();
const numericRegex = /^-?\d+(,\d+)?$/;
for (let i = 0; i < data.length; i++) {
const row = data[i];
let isAllNumeric = true;
for (let j = 0; j < 5; j++) {
const cellValue = row[j];
if (cellValue === "") continue;
const cellString = cellValue.toString();
if (!numericRegex.test(cellString)) {
isAllNumeric = false;
break;
}
}
if (isAllNumeric) {
sheet.getRange(i + 1, 6).setValue("Все ок");
} else {
sheet.getRange(i + 1, 6).setValue("Лишние символы");
}
}
}

