Страницы: 1
RSS
Найти самое длинное слово
 
Привет!:)  
нам в институте дали задание по microsoft excel. Мне нужно во фразе "Карл у Клары украл кораллы" найти самое длинное слово и написать его в отдельную ячейку. Пересмотрела все текстовые функции но как сделать так и не поняла :(    
Помогите пожалуйста!
 
уточните, пожалуйста: одной формулой? без дополнительных ячеек?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=Sunny_Lady}{date=29.02.2012 05:59}{thema=Найти самое длинное слово}{post}  
нам в институте дали задание по microsoft excel.{/post}{/quote}Точно по Excel? Может по VBA? Если текст в одной ячейке, то средствами Excel это сложновато будет, не для студентов это задание...
 
методичка для нахождения самого длинного слова с использование программы microsoft excel  
 
1. запустите программу microsoft excel  
2. создайте новую книгу.  
3. в ячейку A1 на листе Лист1 введите текст, например: "карл у клары украл кораллы".  
4. внимательно посмотрите на текст, найдите в нём самое длинное слово, например: "кораллы"  
5. выделите ячейку A2  
6. введите слово "кораллы" и нажмите enter.  
7. сохраните файл с полученным результатом.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
не пройдет) преподаватель смотрит формулы ведь. А вообще можно использовать дополнительные ячейки, в предыдущих заданиях я так делала. Полностью задание такое: "Набрать строку, содержащую пробелы. Найти самое длинное слово."
 
____________
 
{quote}{login=ikki}{date=29.02.2012 06:16}{thema=в порядке бреда.... (хотя.... хто знает?...)}{post}Re: в порядке бреда.... (хотя.... хто знает?...){/post}{/quote}Тогда и так можно:  
Данные - текст по столбцам - массив индекс(макс(длстр...  
Ты думаешь такое в институте могут задать?
 
{quote}{login=}{date=29.02.2012 06:24}{thema=}{post}____________{/post}{/quote}  
много много цифр и в итоге самое длинное слово коралл, а не кораллы :(  
в приложении фото как должно выглядить решение
 
с массивом - вряд ли... )  
 
попытался поставить себя на место студента обычного (sic! не МГУ) института.  
родил вот ето:
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=ikki}{date=29.02.2012 06:36}{thema=}{post}с массивом - вряд ли... )  
 
попытался поставить себя на место студента обычного (sic! не МГУ) института.  
родил вот ето:{/post}{/quote}  
Большое спасибо! думаю это подойдет. Только разберусь что за формулы вы использовали...
 
{quote}{login=ikki}{date=29.02.2012 06:36}{thema=}{post}с массивом - вряд ли... )  
{/post}{/quote}Почему?!  
=ИНДЕКС(B1:F1;;МАКС(ЕСЛИ(--МАКС(ДЛСТР(B1:F1))=ДЛСТР(B1:F1);СТОЛБЕЦ(A:E))))  
Отлично справляется
 
"вряд ли" - относилось к "Ты думаешь такое в институте могут задать?"  
 
пс. я вообще в институте SuperCalc изучал. под DOS.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
UDF  
 
Function lll(s As String)  
   Dim a, l&  
   s = Application.Trim(s)  
   For Each a In Split(s)  
       If l < Len(a) Then  
           l = Len(a)  
           lll = a  
       End If  
   Next  
End Function
 
{quote}{login=Serge 007}{date=29.02.2012 06:09}{thema=Re: Найти самое длинное слово}{post}Если текст в одной ячейке, то средствами Excel это сложновато будет, не для студентов это задание...{/post}{/quote}  
одной формулой, без дополнительных ячеек
 
МСН, ага... ну вот теперь всё стало ясно! всем студентам будет оч. стыдно, ибо из учебника за 7-й класс формула-то.  
 
-98089-
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
А если к "словам" добавить "пробелы", то, наверное, еще проще будет...
 
Ага, а там ещё  
=МУМНОЖ(НАИБОЛЬШИЙ((ПСТР(" "&Лист1!A1&" ";СТРОКА(Лист1!$1:$99);1)=" ")*СТРОКА(Лист1!$1:$99);СТРОКА(Лист1!$1:$10)+{0;1});{1:-1})  
Нет, я уже вероятно стар для этого всего... Нехай этим студенты занимаются :)  
А UDF можно чуть и сократить:  
 
 
Function lll(s As String): Dim a, l&  
For Each a In Split(Application.Trim(s))  
If l < Len(a) Then l = Len(a): lll = a  
Next  
End Function
 
{quote}{login=ikki}{date=29.02.2012 10:20}{thema=}{post}ибо из учебника за 7-й класс формула-то.{/post}{/quote}  
за 8-й )))  
кстати, массивный ввод не требуется
 
Почему  у меня возникает конфликт в данной формуле (и иже им подобным) постоянно?  
 
=МАКС(ЧАСТОТА(СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));(--ЕЧИСЛО(ПОИСК(" ";ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)))<>0)*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1))))-1;ИНДЕКС(ЧАСТОТА(СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));(--ЕЧИСЛО(ПОИСК(" ";ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)))<>0)*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1))));ДЛСТР(A1)+1))  
 
---------  
55444
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Поясню. Эта формула находит длинное слово, которое не является крайним правым:  
 
ЧАСТОТА(СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));(--ЕЧИСЛО(ПОИСК(" ";ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)))<>0)*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1))))-1  
 
А эта, если оно крайнее правое:  
ИНДЕКС(ЧАСТОТА(СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));(--ЕЧИСЛО(ПОИСК(" ";ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)))<>0)*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1))));ДЛСТР(A1)+1))  
 
Чтобы их слить воедино использую МАКС, но что-то не получается..
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
{quote}{login=RAN}{date=29.02.2012 10:27}{thema=}{post}А если к "словам" добавить "пробелы", то, наверное, еще проще будет...{/post}{/quote}  
RAN прав, с "пробелами" значительно проще...  
Даже без имен формула не сложная получилась
Страницы: 1
Читают тему
Наверх