#google-apps-script #google-sheets
#google-apps-script #google-sheets
Вопрос:
При выполнении этой функции Add Total, которую я сделал, когда она добавляет выбранные ячейки, она говорит, что результатом не было числа, но выбранные ячейки имеют только числа.
function ADDTOTAL(ref1, ref2) {
var Number1 = ref1;
var Number2 = ref2;
var Number = Math.floor(Number1 Number2);
return Number;
}
Он возвращает #NUM! и говорит, что результат не был числом, я новичок в этом и понятия не имею, что это такое.
Комментарии:
1. Это работает для меня.
Ответ №1:
Проблема:
Мне удалось воспроизвести вашу проблему.
Вы либо передаете строки вместо ссылок на ячейки:
или значения ячеек, которые вы используете в качестве ссылок, являются строками. Например "3 "
, это строка, потому что она имеет дополнительный пробел, но также 3
отформатирована как строка:
В любом случае вы передаете строки, но аргументы должны быть числами, поскольку вы выполняете математическую операцию.
Чтобы убедиться, что значение ячейки является числом, выполните =ISNUMBER(A1)
. Если это возвращает TRUE
, это означает, что значение A1
является числом. Чтобы преобразовать номер строки в фактическое число, выберите ячейки и перейдите Format => Number => Number
в верхнее меню.
Имейте в виду, что если вы добавите две строки вместе, например "3"
, и "1"
вы не получите 4
, но 31
. Я намеренно изменил формат на обычный текст. В этом случае снова =isnumber(A1)
будет FALSE
:
Решения:
Предполагая, что ячейки являются фактическими числами, у вас есть следующие варианты:
- Вы передаете ссылки на ячейки:
- Вы передаете числовые аргументы:
-
И последнее, но не менее важное: вы можете использовать parseFloat для преобразования входных аргументов в числа:
function ADDTOTAL(ref1, ref2) { var Number1 = parseFloat(ref1); var Number2 = parseFloat(ref2); var Number = Math.floor(Number1 Number2); return Number; }
Комментарии:
1. Вы написали
parseInt
вместоparseFloat
в фрагменте кода. Это опечатка?2. Он по-прежнему возвращает #NUM! когда я пробую решения и после того, как я отформатировал его как число
3. @Blade поделитесь копией своего листа, но сначала удалите всю конфиденциальную информацию..
4. docs.google.com/spreadsheets/d/…
5. @Blade сделайте лист доступным для всех, создав общедоступную ссылку. Теперь у меня нет разрешения на его просмотр.