2016-03-09 2 views
0

Я не смог получить правильную формулу, чтобы удалить начальный ноль в столбце. Я построил следующее, но он возвращает FALSE вместо значения без нуля:Удалите первый символ, если он «0» (нуль)

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

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

ответ

4

Предполагая, что ваши данные в Z2 до Z19497, вы хотите бы ввести следующую формулу в ячейку АА2 затем выбрать из АА2 в AA19497 и не Fill> Вниз (или нажмите 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 имеет раздел "if true" (MID(Z2:Z19497,2,LEN(Z2:Z19497))), но не часть "if false". Вот почему вы в итоге получаете FALSE вместо значения в Z2.
  3. Прост в использовании LEFT, чем RIGHT для условий испытания.

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

+0

FWIW Третий критерий в MID() может быть больше количества символов, оставшихся в строке. '-1' на самом деле не нужен. потому что я ленив, я обычно кладу '999' для третьего критерия, когда использую его вместо Right(). Просто мое мнение, я набираю текст больше, чем нужно. –

+1

@Scott Craner, Согласен, я иногда ленив о 'LEN'. Кажется, что формула 'MID' должна сделать третий аргумент (длина) опциональной и просто принять оставшуюся длину, если ничего не указано. – devuxer

0

Есть несколько проблем с формулой.

Во-первых, вы пытаетесь применить формулу к диапазону ячеек 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 имеют числа, смешанные с числами.

Смежные вопросы