Доброго времени суток
Такая проблема..
Есть ячейка (много ячеек - столбец) содержащая текст (от 0 до 255 символов), которую необходимо обработать...
Так как данные в этой ячейке слабо структуированы приходится писать много формул..
кому интересно могу несколько продемонстрировать :)
=ЕСЛИ(ТИП(НАЙТИ("ааа";A2))=1;НАЙТИ("ааа";A2);ЕСЛИ(ТИП(НАЙТИ("ббб";A2))=1;НАЙТИ("ббб";A2);ЕСЛИ(ТИП(НАЙТИ("ввв";A2))=1;НАЙТИ("ввв";A2);ЕСЛИ(ТИП(НАЙТИ("ввв";A
2))=1;НАЙТИ("ггг";A2);ЕСЛИ(ТИП(НАЙТИ("ггг";A2))=1;НАЙТИ("ддд";A2);ЕСЛИ(ТИП(НАЙТИ("ннн";A2))=1;НАЙТИ("ннн";A2);"нет"))))))
=ЕСЛИ(ТИП(C2)=1;C2;D2)
=ДЛСТР(A2)
=ПСТР(A2;H2;8)
но вопрос в другом...
ЕСТЬ ли какая-л возможность с помощью функций Экселя:
1. В большом тексте, содержащемся в ячейке, определять позицию (хотя бы порядковый номер) ЧИСЛА, а также в идеале выделять его или хотя бы определять его
длинну
2. Посчитать внутри текста, содержащегося в ячейке, количество вхождений символа (например, пробела), или более мелкого куска текста (например, как внутри
текста "я очень люблю зеленые яблоки, но только если эти яблоки созрели в яблочной долине" посчитать с помощью фукнций число пробелов, а также, сколько раз
в этом тексте встречается сочетание букв "ябл", а в идеале определить порядковый номер/позицию/ на которых они находятся)
Понимаю, что загрузил :)
Но мало ли..
Может кто че подскажет... Может кто-н уже решал подобные проблемы..
Я не прошу готовые формулы, хотя бы примерно с помощью каких функций это можно попробовать сделать?
Спасибо, если Вы дочитали это до конца :)
Всем ответившим в тему спасибо ОГРОМНОЕ!
Обработка текстовой ячейки в Excel
Модератор: Naeel Maqsudov
Исходный текст :
я очень люблю зеленые яблоки, но только если эти яблоки созрели в яблочной долине
1) посчитать с помощью фукнций число пробелов, а также, сколько раз в этом тексте встречается сочетание букв "ябл"
Ответ : для того, что подсчитать количество пробелов или других символов, Вы можете воспользоваться вот этой функцией :
Function CoincideCount(Text, Isk)
If IsArray(Text) = True Or IsArray(Isk) = True Then Exit Function
If IsError(Text) = True Or IsError(Isk) = True Then Exit Function
If Text = "" Or Isk = "" Then Exit Function
Text = LCase(Text): Isk = LCase(Isk)
iLen = Len(Isk): iNum = InStr(Text, Isk)
While iNum > 0
iNum = InStr(iNum + iLen, Text, Isk)
CoincideCount = CoincideCount + vbNull
Wend
End Function
2) в идеале определить порядковый номер/позицию/ на которых они находятся)
Ответ : определить порядковый номер "нахождения" одного текста внутри другого можно с помощью стандартной функции =ПОИСК()
я очень люблю зеленые яблоки, но только если эти яблоки созрели в яблочной долине
1) посчитать с помощью фукнций число пробелов, а также, сколько раз в этом тексте встречается сочетание букв "ябл"
Ответ : для того, что подсчитать количество пробелов или других символов, Вы можете воспользоваться вот этой функцией :
Function CoincideCount(Text, Isk)
If IsArray(Text) = True Or IsArray(Isk) = True Then Exit Function
If IsError(Text) = True Or IsError(Isk) = True Then Exit Function
If Text = "" Or Isk = "" Then Exit Function
Text = LCase(Text): Isk = LCase(Isk)
iLen = Len(Isk): iNum = InStr(Text, Isk)
While iNum > 0
iNum = InStr(iNum + iLen, Text, Isk)
CoincideCount = CoincideCount + vbNull
Wend
End Function
2) в идеале определить порядковый номер/позицию/ на которых они находятся)
Ответ : определить порядковый номер "нахождения" одного текста внутри другого можно с помощью стандартной функции =ПОИСК()
а как насчет того, чтобы определить внутри текста цифры?
и что это за функции такие? есть ли аналогичные этим функции, но с русскими названиями?
и что это за функции такие? есть ли аналогичные этим функции, но с русскими названиями?
Да будет так! 

и еще...
как "растянуть" эту "функцию" на много ячеек? (например, хотя бы на 1000)???
как "растянуть" эту "функцию" на много ячеек? (например, хотя бы на 1000)???
Да будет так! 

и еще.......
если я не ошибаюсь, это не совсем функция (или их сочетание...), это больше похоже на макрос..
еще раз уточню..
по замыслу подразумевалось, что результат по каждой обрабатываемой ячейке будет выводится в другую (соседнюю справа) ячейку, и таких ячеек много... (как минимум, несколько сотен)
если я не ошибаюсь, это не совсем функция (или их сочетание...), это больше похоже на макрос..
еще раз уточню..
по замыслу подразумевалось, что результат по каждой обрабатываемой ячейке будет выводится в другую (соседнюю справа) ячейку, и таких ячеек много... (как минимум, несколько сотен)
Да будет так! 

1) Это пользовательская функция, написанная на VBA.
2) Если необходимо, то можно переделать с учётом национального языка, т.е. русского
3) Принцип действия практически не отличается от стандартной
4) Функция была написана специально для Вас, потому что стандартной функции, которая выполняет те же действия я не помню (возможно, что её просто нет)
5) В принципе она должна подсчитывать кол-во повторов одного текста внутри другого, причём в данном случае не важен размер регистра и то, чем является текст.
P.S. По всем дополнительным вопросам, Вы можете писать мне напрямую на e-mail.
2) Если необходимо, то можно переделать с учётом национального языка, т.е. русского
3) Принцип действия практически не отличается от стандартной
4) Функция была написана специально для Вас, потому что стандартной функции, которая выполняет те же действия я не помню (возможно, что её просто нет)
5) В принципе она должна подсчитывать кол-во повторов одного текста внутри другого, причём в данном случае не важен размер регистра и то, чем является текст.
P.S. По всем дополнительным вопросам, Вы можете писать мне напрямую на e-mail.