Удаление 1-го символа числа перед проверкой, если оно> 0, в сочетании с косвенной функцией

#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 .


Или, во многих специальных ситуациях, проще всего использовать «Текст в столбцы» для удаления заполненных пробелов (или любого другого символа, на самом деле).

  • Другие способы преобразования текста в числа здесь и здесь .
  • Другие способы удаления ненужных пробелов здесь и здесь .