Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Формула извлекающая кусок текста, работает с ошибкой. - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Формула извлекающая кусок текста, работает с ошибкой.
Grell Дата: Четверг, 20.04.2017, 17:01 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
Здравствуйте, уважаемые специалисты по экселю.
Помогите советом - насчет формулы.

Есть формула извлекающая кусок текста - из текстовой ячейки. Ограничители извлекаемого куска - текст "texturef" и ","

[vba]
Код
=ЕСЛИОШИБКА(ЗНАЧЕН(ЕСЛИ(ЕСЛИОШИБКА(СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ПОДСТАВИТЬ(ПСТР(D10;ПОИСК($E$4;D10)+3;15);"-";ПОВТОР(" ";15));15;99);",";ПОВТОР(" ";99));99));0)="05";0,5;ЕСЛИОШИБКА(СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ПОДСТАВИТЬ(ПСТР(D10;ПОИСК($E$4;D10)+3;15);"-";ПОВТОР(" ";15));15;99);",";ПОВТОР(" ";99));99));0)));0)
[/vba]
В большинстве случаев формула работает нормально.
Но иногда возникает странный "баг".

Почему-то формула найдя первый ограничитель ("texturef") и не найдя второго ограничителя (",") - отсчитывает шесть символов от "целевой запятой" - и возвращает значение 7-го символа (при условии, что это - число, а не буква или знак). Сейчас- это число "5" (из слова "etsh05,").
Проблемная ячейка (H10). По идее - вместо значения 5 - в этой ячейке должно быть значение "0"

Как изменить формулу, чтобы в проблемной ячейке (H10) диапазона - отображался 0 ?

Я пытался сам определить причину такой странной работы - искал в формуле значения "7" или "8" - ведь формула извлекает число после 8 символа...
Но в формуле - таких чисел нет.
Поэтому я в тупике.
К сообщению приложен файл: 3458.xlsx (12.1 Kb)


Сообщение отредактировал Grell - Четверг, 20.04.2017, 17:14
 
Ответить
СообщениеЗдравствуйте, уважаемые специалисты по экселю.
Помогите советом - насчет формулы.

Есть формула извлекающая кусок текста - из текстовой ячейки. Ограничители извлекаемого куска - текст "texturef" и ","

[vba]
Код
=ЕСЛИОШИБКА(ЗНАЧЕН(ЕСЛИ(ЕСЛИОШИБКА(СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ПОДСТАВИТЬ(ПСТР(D10;ПОИСК($E$4;D10)+3;15);"-";ПОВТОР(" ";15));15;99);",";ПОВТОР(" ";99));99));0)="05";0,5;ЕСЛИОШИБКА(СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ПОДСТАВИТЬ(ПСТР(D10;ПОИСК($E$4;D10)+3;15);"-";ПОВТОР(" ";15));15;99);",";ПОВТОР(" ";99));99));0)));0)
[/vba]
В большинстве случаев формула работает нормально.
Но иногда возникает странный "баг".

Почему-то формула найдя первый ограничитель ("texturef") и не найдя второго ограничителя (",") - отсчитывает шесть символов от "целевой запятой" - и возвращает значение 7-го символа (при условии, что это - число, а не буква или знак). Сейчас- это число "5" (из слова "etsh05,").
Проблемная ячейка (H10). По идее - вместо значения 5 - в этой ячейке должно быть значение "0"

Как изменить формулу, чтобы в проблемной ячейке (H10) диапазона - отображался 0 ?

Я пытался сам определить причину такой странной работы - искал в формуле значения "7" или "8" - ведь формула извлекает число после 8 символа...
Но в формуле - таких чисел нет.
Поэтому я в тупике.

Автор - Grell
Дата добавления - 20.04.2017 в 17:01
_Boroda_ Дата: Четверг, 20.04.2017, 17:12 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16885
Репутация: 6599 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Нарушение п.2 Правил форума


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНарушение п.2 Правил форума

Автор - _Boroda_
Дата добавления - 20.04.2017 в 17:12
Grell Дата: Пятница, 21.04.2017, 10:50 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
_Boroda_, сменил название темы.
Детально описал суть проблемы.
 
Ответить
Сообщение_Boroda_, сменил название темы.
Детально описал суть проблемы.

Автор - Grell
Дата добавления - 21.04.2017 в 10:50
buchlotnik Дата: Пятница, 21.04.2017, 11:03 | Сообщение № 4
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Grell,
Цитата
В большинстве случаев формула работает нормально
объясните, что значит нормально? какой результат вы ожидаете? не понял почему
Цитата
должно быть значение "0"
 
Ответить
СообщениеGrell,
Цитата
В большинстве случаев формула работает нормально
объясните, что значит нормально? какой результат вы ожидаете? не понял почему
Цитата
должно быть значение "0"

Автор - buchlotnik
Дата добавления - 21.04.2017 в 11:03
Grell Дата: Пятница, 21.04.2017, 11:44 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
buchlotnik, в ячейке D8 текст выглядит так: "456546-jhk,hk texturef05-1, ghjghj,"
В ячейке D10 текст выглядит так: "tsydhfn ,twsd05,texturef05, etsh05,"

Это означает, что в в ячейке D8 - есть правый ограничитель текстового диапазона "texturef" и левый ограничитель текстового диапазона ","
Формула выхватывает внутри этого диапазона (того что между "texturef" и ",") - ту часть текста, которая начинается от символа "-".... и преобразовывает этот текст в число.

А в ячейке D10 - первый ограничитель текстового диапазона"texturef" - имеется, а также имеется и левый ограничитель текстового диапазона ","
Но этот диапазон - НУЛЕВОЙ, поскольку этот текст "texturef05," означает - что между ограничителем "texturef" и "," отсутствует СИМВОЛ ТИРЕ "-"
Стало быть в ячейке H10 - может быть только значение 0.

Однако в ячейке H10 - вместо 0 почему-то выводится значение 5.

Отсюда вопрос - как преобразовать формулу, чтобы она в случае ячейки D10 - выводила 0 (вместо значения 5, которого там быть по логике - не должно ) ?
 
Ответить
Сообщениеbuchlotnik, в ячейке D8 текст выглядит так: "456546-jhk,hk texturef05-1, ghjghj,"
В ячейке D10 текст выглядит так: "tsydhfn ,twsd05,texturef05, etsh05,"

Это означает, что в в ячейке D8 - есть правый ограничитель текстового диапазона "texturef" и левый ограничитель текстового диапазона ","
Формула выхватывает внутри этого диапазона (того что между "texturef" и ",") - ту часть текста, которая начинается от символа "-".... и преобразовывает этот текст в число.

А в ячейке D10 - первый ограничитель текстового диапазона"texturef" - имеется, а также имеется и левый ограничитель текстового диапазона ","
Но этот диапазон - НУЛЕВОЙ, поскольку этот текст "texturef05," означает - что между ограничителем "texturef" и "," отсутствует СИМВОЛ ТИРЕ "-"
Стало быть в ячейке H10 - может быть только значение 0.

Однако в ячейке H10 - вместо 0 почему-то выводится значение 5.

Отсюда вопрос - как преобразовать формулу, чтобы она в случае ячейки D10 - выводила 0 (вместо значения 5, которого там быть по логике - не должно ) ?

Автор - Grell
Дата добавления - 21.04.2017 в 11:44
krosav4ig Дата: Пятница, 21.04.2017, 12:15 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как преобразовать формулу

вот так, например
Код
=--ЗАМЕНИТЬ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(ЛЕВБ(D8;ПОИСК(",";D8&",";ПОИСК("texturef";D8))-1);"texturef";ПОВТОР(" ";99));99));"-";ПОВТОР(" ";99));99;99))&0;2;;",")


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
как преобразовать формулу

вот так, например
Код
=--ЗАМЕНИТЬ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(ЛЕВБ(D8;ПОИСК(",";D8&",";ПОИСК("texturef";D8))-1);"texturef";ПОВТОР(" ";99));99));"-";ПОВТОР(" ";99));99;99))&0;2;;",")

Автор - krosav4ig
Дата добавления - 21.04.2017 в 12:15
Grell Дата: Пятница, 21.04.2017, 12:52 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
krosav4ig, вроде работает.
Спасибо вам большое.
 
Ответить
Сообщениеkrosav4ig, вроде работает.
Спасибо вам большое.

Автор - Grell
Дата добавления - 21.04.2017 в 12:52
AlexM Дата: Пятница, 21.04.2017, 13:13 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Код
=ЕСЛИОШИБКА(-ЛЕВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(D8;ПОИСК("-";D8&"-";ПОИСК("texturef";D8));99);"-0";"-0,");", ";ПОВТОР(" ";9));9);)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Пятница, 21.04.2017, 13:13
 
Ответить
Сообщение
Код
=ЕСЛИОШИБКА(-ЛЕВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(D8;ПОИСК("-";D8&"-";ПОИСК("texturef";D8));99);"-0";"-0,");", ";ПОВТОР(" ";9));9);)

Автор - AlexM
Дата добавления - 21.04.2017 в 13:13
Grell Дата: Пятница, 21.04.2017, 16:16 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
AlexM, тоже работает.
Спасибо.
 
Ответить
СообщениеAlexM, тоже работает.
Спасибо.

Автор - Grell
Дата добавления - 21.04.2017 в 16:16
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!