Подскажите пожалуйста, мне нужно в ячейку 1 Excel вставить значение из ячейки 2 после последней точки. Например, C:\foto\278637-Иванов Игорь-Photo-269230.jpg, мне нужно получить только .jpg, т.е. только расширение файла. Но при этом расширение файла может быть более 3-х символов, а имя может содержать точки, поэтому значение нужно вставить именно после последней точки. Спасибо.
Подскажите пожалуйста, мне нужно в ячейку 1 Excel вставить значение из ячейки 2 после последней точки. Например, C:\foto\278637-Иванов Игорь-Photo-269230.jpg, мне нужно получить только .jpg, т.е. только расширение файла. Но при этом расширение файла может быть более 3-х символов, а имя может содержать точки, поэтому значение нужно вставить именно после последней точки. Спасибо.povsten
1. ПРАВБ(A1;5) - дает 5-й символ справа 2. КОДСИМВ(п.1) - дает код первого символа из полученного в п.1 3. код точки равен 46, если п.2 тоже 46, то ИСТИНА, иначе - ЛОЖЬ 4. справа от А1 отсекаем 4 символа +1, если в п.3 ИСТИНА, +0, если ЛОЖЬ
1. ПОВТОР(" ";99) - 99 пробелов (если кол-во символов в А1 может быть больше 99, то пишем не 99, а большее число, например, 999) 2. ПОДСТАВИТЬ(A1;".";ПОВТОР(" ";99)) - вместо точки подставляем 99 пробелов, получаем что-то типа "ааааа (99пробелов) фффффффф (99пробелов) ккккккккккккккк" 3. ПОДСТАВИТЬ(A1;".";) - вместо точки подставляем пусто 4. ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;".";)) - кол-во символов в А1 минус кол-во символов в А1 без точек = количеству точек в А1 5. ПСТР(п.2; 99*п.4; 99) - 99*п.4 - это по количеству символов где-то внутри последней кучи пробелов (ближе к концу); отрезаем 99 символов от этого места вправо, получаем примерно так " ккккккккккккккк" 6. "."&СЖПРОБЕЛЫ(п.5) - убираем лишние пробелы и прилепляем слева точку.
1. ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;".";)) - см. п4 выше 2. ПОДСТАВИТЬ(A1;".";A1;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;".";))) - в А1 на место последней точки вставляем значение из А1; получается примерно так: было - фф.ыы.вв, стало фф.ыыфф.ыы.вввв 3. ПОИСК(A1; п.2) - ищем зеленое в п.2, получаем число, равное кол-ву символов до первой зеленой "ф" включительно в п.2; другими словами - номер расположения последней точки 4. ПСТР(А1; п.3; 99) - из А1 берем 99 символов, начиная с полученного в п.3
Код
=ПРАВБ(A1;4+(КОДСИМВ(ПРАВБ(A1;5))=46))
1. ПРАВБ(A1;5) - дает 5-й символ справа 2. КОДСИМВ(п.1) - дает код первого символа из полученного в п.1 3. код точки равен 46, если п.2 тоже 46, то ИСТИНА, иначе - ЛОЖЬ 4. справа от А1 отсекаем 4 символа +1, если в п.3 ИСТИНА, +0, если ЛОЖЬ
1. ПОВТОР(" ";99) - 99 пробелов (если кол-во символов в А1 может быть больше 99, то пишем не 99, а большее число, например, 999) 2. ПОДСТАВИТЬ(A1;".";ПОВТОР(" ";99)) - вместо точки подставляем 99 пробелов, получаем что-то типа "ааааа (99пробелов) фффффффф (99пробелов) ккккккккккккккк" 3. ПОДСТАВИТЬ(A1;".";) - вместо точки подставляем пусто 4. ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;".";)) - кол-во символов в А1 минус кол-во символов в А1 без точек = количеству точек в А1 5. ПСТР(п.2; 99*п.4; 99) - 99*п.4 - это по количеству символов где-то внутри последней кучи пробелов (ближе к концу); отрезаем 99 символов от этого места вправо, получаем примерно так " ккккккккккккккк" 6. "."&СЖПРОБЕЛЫ(п.5) - убираем лишние пробелы и прилепляем слева точку.
1. ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;".";)) - см. п4 выше 2. ПОДСТАВИТЬ(A1;".";A1;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;".";))) - в А1 на место последней точки вставляем значение из А1; получается примерно так: было - фф.ыы.вв, стало фф.ыыфф.ыы.вввв 3. ПОИСК(A1; п.2) - ищем зеленое в п.2, получаем число, равное кол-ву символов до первой зеленой "ф" включительно в п.2; другими словами - номер расположения последней точки 4. ПСТР(А1; п.3; 99) - из А1 берем 99 символов, начиная с полученного в п.3_Boroda_