#excel #vba
Вопрос:
Я хотел бы использовать функции =indirect() и =value() вместе. Я должен подсчитать, сколько чисел > 0 на другом листе, в строках I:I. На этих листах числа не форматируются как значения, и я не должен делать это вручную. Кроме того, для чисел они отформатированы как «123» с пробелом перед числом. Мне также нужно убрать пробел перед цифрами, чтобы это сработало.
На моем текущем листе в ячейке J1 я написал «I: I». В ячейке A3 у меня есть имя листа, из которого я хотел бы посчитать числа. Моя попытка до сих пор:
{=COUNT.IF(INDIRECT("'"amp;A3amp;"'!"amp;$J$1);">0")
Однако это просто возвращает значения 0. Это потому, что перед числами есть пробел. Как мне удалить этот пробел? Мне нужно реализовать это в этой функции
Я немного отредактировал сообщение, так как заметил, что перед числами был пробел
Ответ №1:
На листе, если ваше значение " 123 "
находится в ячейке A1
, вы можете использовать формулу типа:
=VALUE(TRIM(A1))
…к TRIM
пробелам и преобразуйте строку в числовую VALUE
.
Или, в VBA, что-то вроде:
myValue = CInt(Trim(myString))
…к Trim
пробелам и C onvert к CInt
-eger .
Или, во многих специальных ситуациях, проще всего использовать «Текст в столбцы» для удаления заполненных пробелов (или любого другого символа, на самом деле).