Удалите первый символ, если он равен «0» (ноль)

Мне не удалось найти правильную формулу для удаления нуля в начале столбца. Я построил следующее, но оно возвращает FALSE вместо значения без нуля:

  = IF (RIGHT (Z2: Z19497, LEN (  Z2: Z19497) -1) = "0", MID (Z2: Z19497,2, LEN (Z2: Z19497)))  

Надеюсь, вы можете помочь.


Предполагая, что ваши данные находятся в диапазоне от Z2 до Z19497, вам нужно ввести следующую формулу в ячейку AA2, затем выбрать от AA2 до AA19497 и выполните Fill> Down (или нажмите Ctrl + D ):

  = IF (LEFT  (Z2,1) = "0", MID (Z2,2, LEN (Z2) -1), Z2)  

Примечание. Как обсуждалось в комментариях, -1 после LEN не является обязательным, поскольку MID будет работать нормально, даже если вы укажете длину, превышающую количество оставшихся символов. Чтобы еще больше сократить объем набора, вы можете использовать 999 (или число, которое безопасно превышает самую длинную ячейку) вместо LEN (Z2) -1 .

При попытке выполнить формулу возникла пара проблем:

  1. Этот тип формулы работает только для одной ячейки за раз, но вы включили весь диапазон ( Z2: Z19497 ) вместо одной ячейки ( Z2 ).
  2. Ваш IF В операторе code> есть часть "если истина" ( MID (Z2: Z19497,2, LEN (Z2: Z19497)) ), но не часть "если ложь". Вот почему вы получаете FALSE вместо значения в Z2 .
  3. Легче использовать ВЛЕВО , чем RIGHT для условия теста.

Обратите внимание, что при копировании формулы вниз Z2 автоматически перейдет к Z3 , Z4 и т. д.


Предполагая, что ваши данные находятся в диапазоне от Z2 до Z19497, вам нужно ввести следующую формулу в ячейку AA2, затем выбрать от AA2 до AA19497 и нажать Fill> Down (или нажать Ctrl + D ):

  = IF (LEFT (Z2,1) = "0", MID (Z2,  2, LEN (Z2) -1), Z2)  

Примечание. Как обсуждалось в комментариях, -1 после LEN не является обязательным, поскольку MID будет работать нормально, даже если вы укажете длину, превышающую количество оставшихся символов. Чтобы еще больше сократить объем набора, вы можете использовать 999 (или число, которое безопасно превышает самую длинную ячейку) вместо LEN (Z2) -1 .

При попытке выполнить формулу возникла пара проблем:

  1. Этот тип формулы работает только для одной ячейки за раз, но вы включили весь диапазон ( Z2: Z19497 ) вместо одной ячейки ( Z2 ).
  2. Ваш IF В операторе code> есть часть "if true" ( MID (Z2: Z19497,2, LEN (Z2: Z19497)) ), но не часть "if false". Вот почему вы получаете FALSE вместо значения в Z2 .
  3. Легче использовать LEFT , чем RIGHT для условия теста.

Обратите внимание, что при копировании формулы вниз Z2 автоматически перейдет к Z3 , Z4 и т. д.


С вашей формулой есть несколько проблем.

Во-первых, вы пытаетесь применить формулу к диапазону ячеек Z2: Z19497 . Вместо этого вам нужно оценивать каждую ячейку отдельно, проверяя, начинается ли Z2 с нуля, Z3 начинается с нуля и т. Д. Если вы добавите формулу где-нибудь, например в ячейку AA2 , а затем заполните ее до AA19497 , у вас будет список значений в столбце AA без ведущих нулей.

Следующая проблема связана с вашим тестовым оператором IF . Если мы исправим вашу формулу, чтобы посмотреть на одну ячейку, она будет выглядеть так: RIGHT (Z2, LEN (Z2) -1) = "0" . Эта формула говорит: скажите мне, все ли, кроме первого символа в ячейке Z2 , равны 0. Видите ли здесь какие-нибудь проблемы? Единственный раз, когда он вернет истину, — это когда у вас есть двузначное число в ячейке Z2 , которое заканчивается на 0. В противном случае вы проверяете, равно ли многосимвольное значение 0, что этого не может быть.

Вместо этого давайте проверим, равен ли первый символ 0. Для этого давайте воспользуемся функцией LEFT , чтобы получить первый символ. LEFT (Z2,1) = "0" Замечательно, теперь мы знаем, равен ли первый символ 0 или нет.

Итак, давайте предположим, что первый символ равен 0 . Мы хотим удалить это, но как мы это сделаем? Версия вашей текущей логики с одной ячейкой — MID (Z2,2, LEN (Z2)) , которая должна работать, но немного неверна. Для полноты картины исправим. Поскольку вы удаляете первый символ ячейки Z2 , вы больше не хотите, чтобы MID использовал длину Z2 , вы хотите использовать длину Z2 минус 1. Давайте перепишем этот раздел вашей формулы как MID (Z2,2, LEN (Z2) -1) затем.

Теперь перейдем к ситуации, когда ваша ячейка в Z2 не начинается с 0. В этом случае вы хотите, чтобы формула просто возвращала это ценность. Мы можем сделать это, просто добавив еще одну запятую после инструкции формулы, когда число начинается с 0, и вставив Z2 . Это звучит немного запутанно, но должно иметь смысл в полной формуле ниже:

= IF (LEFT (A1,1) = "0", MID (A1,2, LEN (A1) -1), A1)

После того, как это будет введено в ячейку, предположительно AA2 , вы сможете щелкнуть маленькое поле в правом нижнем углу этой ячейки, чтобы он заполнил формулу вниз по столбцу до конца ваших данных, предположительно AA19497

Другой вариант, который у вас есть если все значения в столбце Z представляют собой числа, которым предшествуют нули, просто введите формулу = Z2 * 1 или = Z2 /1 в другой ячейке, AA2 , если мы следуем тому же шаблону, что и остальная часть этого ответа. Это даст вам числовое значение Z в вашем новом столбце, и его будет намного легче запомнить и ввести. К сожалению, это не сработает, если значения в ваших столбцах Z содержат числа, смешанные с числами.


С вашей формулой есть пара проблем.

Во-первых, вы пытаетесь применить формулу к диапазону ячеек Z2: Z19497 . Вместо этого вам нужно оценивать каждую ячейку отдельно, проверяя, начинается ли Z2 с нуля, Z3 начинается с нуля и т. Д. Если вы добавите формулу где-нибудь, например в ячейку AA2 , а затем заполните ее до AA19497 , у вас будет список значений в столбце AA без ведущих нулей.

Следующая проблема связана с вашим тестовым оператором IF . Если мы исправим вашу формулу, чтобы посмотреть на одну ячейку, она будет выглядеть так: RIGHT (Z2, LEN (Z2) -1) = "0" . Эта формула говорит: скажите мне, все ли, кроме первого символа в ячейке Z2 , равны 0. Видите ли здесь какие-нибудь проблемы? Единственный раз, когда он вернет истину, — это когда у вас есть двузначное число в ячейке Z2 , которое заканчивается на 0. В противном случае вы проверяете, равно ли многосимвольное значение 0, что этого не может быть.

Вместо этого давайте проверим, равен ли первый символ 0. Для этого давайте воспользуемся функцией LEFT , чтобы получить первый символ. LEFT (Z2,1) = "0" Замечательно, теперь мы знаем, равен ли первый символ 0 или нет.

Итак, давайте предположим, что первый символ равен 0 . Мы хотим удалить это, но как мы это сделаем? Версия вашей текущей логики с одной ячейкой — MID (Z2,2, LEN (Z2)) , которая должна работать, но немного неверна. Для полноты картины исправим. Поскольку вы удаляете первый символ ячейки Z2 , вы больше не хотите, чтобы MID использовал длину Z2 , вы хотите использовать длину Z2 минус 1. Давайте перепишем этот раздел вашей формулы как MID (Z2,2, LEN (Z2) -1) тогда.

Теперь перейдем к ситуации, когда ваша ячейка в Z2 не начинается с 0. В этом случае вы хотите, чтобы формула просто возвращала это значение. Мы можем сделать это, просто добавив еще одну запятую после инструкции формулы, когда число начинается с 0, и вставив Z2 . Это звучит немного запутанно, но должно иметь смысл в полной формуле ниже:

= IF (LEFT (A1,1) = "0", MID (A1,2, LEN (A1) -1), A1)

После того, как это будет введено в ячейку, предположительно AA2 , вы сможете щелкнуть маленькое поле в правом нижнем углу этой ячейки, чтобы он заполнил формулу вниз по столбцу до конца ваших данных, предположительно AA19497

Другой вариант, который у вас есть если все значения в столбце Z представляют собой числа, которым предшествуют нули, просто введите формулу = Z2 * 1 или = Z2 /1 в другой ячейке, AA2 , если мы следуем тому же шаблону, что и остальная часть этого ответа. Это даст вам числовое значение Z в вашем новом столбце, и его будет намного легче запомнить и ввести. К сожалению, это не сработает, если значения в столбцах Z содержат числа, смешанные с числами.

Оцените статью
techsly.ru
Добавить комментарий