2015-02-22 4 views
-3

У меня есть список номеров VIN (17 символов), а 10-й символ - модельный год - это может быть буква или число. Я где-то читал, что IF функция будет принимать только 7 уровней, у меня есть 16 уровней условий:Если вам нужны вспомогательные функции

G 2016 
F 2015 
E 2014 
D 2013 
C 2012 
B 2011 
A 2010 
9 2009 
8 2008 
7 2007 
6 2006 
5 2005 
4 2004 
3 2003 
2 2002 
1 2001 

Я начал создавать формулу (всего несколько уровней, а не все 16), но значение я вернусь есть FALSE ,

=IF(MID(A1,10,1)=1,2001, 
IF(MID(A1,10,1)=2,2002, 
IF(MID(A1,10,1)=3,2003, 
IF(MID(A1,10,1)=4,2004, 
IF(MID(A1,10,1)=5,2005, 
IF(MID(A1,10,1)=6,2006, 
IF(MID(A1,10,1)=7,2007 
))))))) 

Возможно, другая комбинация формул будет работать лучше?

ответ

0

ли эту работу:

=CInt(MID(A1,9,2)) + 2000 

Он работает до тех пор, как год является 2000 год, и никогда не персонаж.

+0

CInt в формуле? и она написала, что будут письма ... –

0

Это будет делать это

=IFERROR(2000 + HEX2DEC(MID(A1,10,1)),2016) 

Если вы не хотите использовать ЕСЛИОШИБКА вы можете использовать эту формулу немного длиннее

=IF(MID(A1,10,1)="G",2016,2000 + HEX2DEC(MID(A1,10,1))) 

Кстати, Excel 2007 позволяет 64 вложенными сослагательного наклонения Теперь

0

Я бы предложил использовать таблицу поиска, например если коды перечислены в Y2:Y17 и лет в Z2:Z17 вы можете использовать эту формулу

=VLOOKUP(MID(A1,10,1),Y$2:Z$17,2,0)

Обратите внимание, что MID функция всегда возвращает текстовый результат, поэтому Y2:Y17 диапазон таблицы перекодировки должен быть текст, отформатированный (даже номера), так как формат, который колеблется, как текст, прежде чем вводить данные или ввести цифры с апострофом, как, предшествующего «4

0

переписал это потому, что последний не принял во внимание письма:

= IF (ISNUMBER (VALUE (MID (A1,10,1)), MID (A1,10,1) + 2000, CODE (UPPER (B1)) + 1945)

Он работает, обнаружив, что 10-й символ это число, если оно затем добавляет 2000 к нему, если оно является буквой, тогда оно разбивает его на значение ASCII (65 для A) и добавляет к нему 1945 год. Заметьте, я использовал Upper как нижний регистр a, это 97, что сделало бы результат неправильным. Если вам гарантированы ваши номера вин, все шапки, то вы можете опустить верхний раздел

+0

Из интереса, как VIN справляется с пред 2000 автомобилями? –

+0

Спасибо, Дэн за ответ так быстро. Изучая партии от вас, ребята :) –

+0

Извините, упустил ваш вопрос Dan. Он использует от 1 до 9, затем от A до Y (пропускает несколько букв), а затем возвращается к 1. Для этого производителя патикуля все равно. Итак ... 2000 - Y, 1999 - X и т. Д. –