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

Вход

Регистрация

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

 

= Мир MS Excel/Длинношеее - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Мир MS Excel » Работа и общение » Мозговой штурм » Длинношеее
Длинношеее
Serge_007 Дата: Суббота, 13.10.2012, 14:22 | Сообщение № 1
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Gustav)
даешь мозговой штурм на тему, где это еще можно применить!

Есть большой список слов допустим в столбце А.
Нужно найти в нем слова с 3-я согласными буквами подряд и переместить в другую колонку например в В.
можно макросом или формулой.
Пример файла прикрепил.
В данном примере подходит слово АББРЕВИАТУРА

Текст (Поиск текста)
Работа с текстом (Поиск слов)

ЗЫ Простого решения нет, только через список, с кодами символов
К сообщению приложен файл: _AL_.xls (24.5 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Gustav)
даешь мозговой штурм на тему, где это еще можно применить!

Есть большой список слов допустим в столбце А.
Нужно найти в нем слова с 3-я согласными буквами подряд и переместить в другую колонку например в В.
можно макросом или формулой.
Пример файла прикрепил.
В данном примере подходит слово АББРЕВИАТУРА

Текст (Поиск текста)
Работа с текстом (Поиск слов)

ЗЫ Простого решения нет, только через список, с кодами символов

Автор - Serge_007
Дата добавления - 13.10.2012 в 14:22
MCH Дата: Суббота, 13.10.2012, 18:18 | Сообщение № 2
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Нужно одной формулой, или можно со вспомогательными ячейками?
И что делать если 4 поряд согласных буквы, например АББАТСТВО?


Сообщение отредактировал MCH - Суббота, 13.10.2012, 18:47
 
Ответить
СообщениеНужно одной формулой, или можно со вспомогательными ячейками?
И что делать если 4 поряд согласных буквы, например АББАТСТВО?

Автор - MCH
Дата добавления - 13.10.2012 в 18:18
MCH Дата: Суббота, 13.10.2012, 19:10 | Сообщение № 3
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Одной формулой не хочется делать (а возможно и не сделаешь), да и не рационально

ЗЫ: В словаре Ожегова на букву А не нешлось ни одного слова с тремя подряд глассными буквами
К сообщению приложен файл: ABC.rar (38.9 Kb)


Сообщение отредактировал MCH - Суббота, 13.10.2012, 19:21
 
Ответить
СообщениеОдной формулой не хочется делать (а возможно и не сделаешь), да и не рационально

ЗЫ: В словаре Ожегова на букву А не нешлось ни одного слова с тремя подряд глассными буквами

Автор - MCH
Дата добавления - 13.10.2012 в 19:10
Serge_007 Дата: Суббота, 13.10.2012, 19:11 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (MCH)
Нужно одной формулой

Да

Quote (MCH)
В словаре Ожегова на букву А не нешлось ни одного слова с тремя подряд глассными буквами

Quote (Serge_007)
Нужно найти слова с 3-я СОгласными буквами


Quote (MCH)
что делать если 4 поряд согласных буквы

Опционально, можно игнорировать, можно учитывать, на выбор

ЗЫ С тремя гласными я привел пример в названии темы


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (MCH)
Нужно одной формулой

Да

Quote (MCH)
В словаре Ожегова на букву А не нешлось ни одного слова с тремя подряд глассными буквами

Quote (Serge_007)
Нужно найти слова с 3-я СОгласными буквами


Quote (MCH)
что делать если 4 поряд согласных буквы

Опционально, можно игнорировать, можно учитывать, на выбор

ЗЫ С тремя гласными я привел пример в названии темы

Автор - Serge_007
Дата добавления - 13.10.2012 в 19:11
Gustav Дата: Воскресенье, 14.10.2012, 13:13 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2739
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Если достаточно, чтобы формула возвращала ИСТИНу в качестве индикатора 3 согласных подряд и нет ограничения на Excel 2003, то

218

(при любом регистре символов; если же всегда оперируем только с верхним, то будет поменьше)


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Воскресенье, 14.10.2012, 13:44
 
Ответить
СообщениеЕсли достаточно, чтобы формула возвращала ИСТИНу в качестве индикатора 3 согласных подряд и нет ограничения на Excel 2003, то

218

(при любом регистре символов; если же всегда оперируем только с верхним, то будет поменьше)

Автор - Gustav
Дата добавления - 14.10.2012 в 13:13
MCH Дата: Воскресенье, 14.10.2012, 14:00 | Сообщение № 6
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Quote (Gustav)
Если достаточно, чтобы формула возвращала ИСТИНу

А я так и не понял что нужно. Потому как требования к задаче меняются.
Quote (Serge_007)
можно макросом или формулой

Если решать макросом, то вообще проблем нет, зачем тогда ограничиватся одной формулой без вспомогательгых ячеек?
Если нужно одной формулой получить аналогичный список как в файле ABC.rar из 3 сообщения, то нужно еще постараться так сделать, формула получится тяжелой, медленной и не примеримой на практике для выборки из нескольких тысяч слов

Quote (Serge_007)
ЗЫ Простого решения нет, только через список, с кодами символов

Пример без списка с кодами символов привел в файле ABC.rar
 
Ответить
Сообщение
Quote (Gustav)
Если достаточно, чтобы формула возвращала ИСТИНу

А я так и не понял что нужно. Потому как требования к задаче меняются.
Quote (Serge_007)
можно макросом или формулой

Если решать макросом, то вообще проблем нет, зачем тогда ограничиватся одной формулой без вспомогательгых ячеек?
Если нужно одной формулой получить аналогичный список как в файле ABC.rar из 3 сообщения, то нужно еще постараться так сделать, формула получится тяжелой, медленной и не примеримой на практике для выборки из нескольких тысяч слов

Quote (Serge_007)
ЗЫ Простого решения нет, только через список, с кодами символов

Пример без списка с кодами символов привел в файле ABC.rar

Автор - MCH
Дата добавления - 14.10.2012 в 14:00
Serge_007 Дата: Воскресенье, 14.10.2012, 17:09 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (MCH)
требования к задаче меняются
Ничего не меняется.
Quote (MCH)
Нужно одной формулой

Про макросы - это текст топика автора, ссылки я давал выше


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (MCH)
требования к задаче меняются
Ничего не меняется.
Quote (MCH)
Нужно одной формулой

Про макросы - это текст топика автора, ссылки я давал выше

Автор - Serge_007
Дата добавления - 14.10.2012 в 17:09
kim Дата: Воскресенье, 21.10.2012, 09:53 | Сообщение № 8
Группа: Друзья
Ранг: Обитатель
Сообщений: 371
Репутация: 160 ±
Замечаний: 0% ±

Excel 2010
Задача легко решается 334-символьной формулой (без знака "=") без проверки на ошибки (можно скрыть УФ)

Quote (Gustav)
Если достаточно, чтобы формула возвращала ИСТИНу в качестве индикатора 3 согласных подряд и нет ограничения на Excel 2003, то 218

Можно почти в 2 раза короче smile


Сцяна - гэта тая ж прыступка. Проста трэба дарасьці да яе.
 
Ответить
СообщениеЗадача легко решается 334-символьной формулой (без знака "=") без проверки на ошибки (можно скрыть УФ)

Quote (Gustav)
Если достаточно, чтобы формула возвращала ИСТИНу в качестве индикатора 3 согласных подряд и нет ограничения на Excel 2003, то 218

Можно почти в 2 раза короче smile

Автор - kim
Дата добавления - 21.10.2012 в 09:53
Serge_007 Дата: Воскресенье, 21.10.2012, 09:56 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (kim)
Задача легко решается 334-символьной формулой

Привет Игорь!
Выкладывай smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (kim)
Задача легко решается 334-символьной формулой

Привет Игорь!
Выкладывай smile

Автор - Serge_007
Дата добавления - 21.10.2012 в 09:56
kim Дата: Воскресенье, 21.10.2012, 10:04 | Сообщение № 10
Группа: Друзья
Ранг: Обитатель
Сообщений: 371
Репутация: 160 ±
Замечаний: 0% ±

Excel 2010
Решение в "лоб", было бы интересно сократить... но тут включаются трёхмерные условия

[vba]
Code
=ИНДЕКС(A$1:A$10;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(ЕЧИСЛО(ПОИСК(ПСТР(A$1:A$10&ПОВТОР(0;33);СТОЛБЕЦ(A:AD);1);"йцкнгшщзхфвпрлджчсмтб"))*ЕЧИСЛО(ПОИСК(ПСТР(A$1:A$10&ПОВТОР(0;33);СТОЛБЕЦ(B:AE);1);"йцкнгшщзхфвпрлджчсмтб"))*ЕЧИСЛО(ПОИСК(ПСТР(A$1:A$10&ПОВТОР(0;33);СТОЛБЕЦ(C:AF);1);"йцкнгшщзхфвпрлджчсмтб"));СТРОКА($1:$30)^0);СТРОКА($1:$10));СТРОКА(A1)))
[/vba]

Для доп.столбца:
[vba]
Code
=ИЛИ(МУМНОЖ(--ЕЧИСЛО(ПОИСК(ПСТР(ПСТР(A1;СТРОКА($1:$20);3)&0;СТОЛБЕЦ(A:C);1);"йцкнгшщзхфвпрлджчсмтб"));{1:1:1})=3)
[/vba]


Сцяна - гэта тая ж прыступка. Проста трэба дарасьці да яе.
 
Ответить
СообщениеРешение в "лоб", было бы интересно сократить... но тут включаются трёхмерные условия

[vba]
Code
=ИНДЕКС(A$1:A$10;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(ЕЧИСЛО(ПОИСК(ПСТР(A$1:A$10&ПОВТОР(0;33);СТОЛБЕЦ(A:AD);1);"йцкнгшщзхфвпрлджчсмтб"))*ЕЧИСЛО(ПОИСК(ПСТР(A$1:A$10&ПОВТОР(0;33);СТОЛБЕЦ(B:AE);1);"йцкнгшщзхфвпрлджчсмтб"))*ЕЧИСЛО(ПОИСК(ПСТР(A$1:A$10&ПОВТОР(0;33);СТОЛБЕЦ(C:AF);1);"йцкнгшщзхфвпрлджчсмтб"));СТРОКА($1:$30)^0);СТРОКА($1:$10));СТРОКА(A1)))
[/vba]

Для доп.столбца:
[vba]
Code
=ИЛИ(МУМНОЖ(--ЕЧИСЛО(ПОИСК(ПСТР(ПСТР(A1;СТРОКА($1:$20);3)&0;СТОЛБЕЦ(A:C);1);"йцкнгшщзхфвпрлджчсмтб"));{1:1:1})=3)
[/vba]

Автор - kim
Дата добавления - 21.10.2012 в 10:04
MCH Дата: Воскресенье, 21.10.2012, 22:46 | Сообщение № 11
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Quote (kim)
Решение в "лоб", было бы интересно сократить...

Чуть короче, но тоже "в лоб"
261:
[vba]
Code
=ИНДЕКС(A$1:A$10;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(ЕОШ(ПОИСК(ПСТР(A$1:A$10;СТОЛБЕЦ(A:X);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A$10;СТОЛБЕЦ(B:Y);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A$10;СТОЛБЕЦ(C:Z);1);"аеёиоуъыьэюя"));СТРОКА(A$1:A$24));СТРОКА($A$1:$A$10));СТРОКА(A1)))
[/vba]

с использованием "трехмерного" массива, работает только в 2007+, задваивает слова в которых более 3 согласных подряд, к тому же летучая
189:
[vba]
Code
=СМЕЩ(A$1;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(1-ЕОШ(ПОИСК(ПСТР(Т(СМЕЩ(A$1;(СТРОКА($1:$200)-1)/20;));ОСТАТ(СТРОКА($1:$200)-1;20)+{1;2;3};1);"аеёиоуъыьэюя"));{1:1:1})=0;СТРОКА($1:$200)-1);СТРОКА(A1))/20;)
[/vba]


Сообщение отредактировал MCH - Воскресенье, 21.10.2012, 23:41
 
Ответить
Сообщение
Quote (kim)
Решение в "лоб", было бы интересно сократить...

Чуть короче, но тоже "в лоб"
261:
[vba]
Code
=ИНДЕКС(A$1:A$10;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(ЕОШ(ПОИСК(ПСТР(A$1:A$10;СТОЛБЕЦ(A:X);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A$10;СТОЛБЕЦ(B:Y);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A$10;СТОЛБЕЦ(C:Z);1);"аеёиоуъыьэюя"));СТРОКА(A$1:A$24));СТРОКА($A$1:$A$10));СТРОКА(A1)))
[/vba]

с использованием "трехмерного" массива, работает только в 2007+, задваивает слова в которых более 3 согласных подряд, к тому же летучая
189:
[vba]
Code
=СМЕЩ(A$1;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(1-ЕОШ(ПОИСК(ПСТР(Т(СМЕЩ(A$1;(СТРОКА($1:$200)-1)/20;));ОСТАТ(СТРОКА($1:$200)-1;20)+{1;2;3};1);"аеёиоуъыьэюя"));{1:1:1})=0;СТРОКА($1:$200)-1);СТРОКА(A1))/20;)
[/vba]

Автор - MCH
Дата добавления - 21.10.2012 в 22:46
AlexM Дата: Понедельник, 22.10.2012, 11:16 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4490
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
Такая формула подойдет?
Code
=ЕСЛИ(ЕОШ(НАЙТИ(111;СУММПРОИЗВ(ЕОШ(ПОИСК(ПСТР(A1;СТРОКА($1:$99);1);"аеёиоуыэюя"))*10^(СТРОКА($1:$99)-1))));"";A1)


Извините, если сообщение неправильно оформил. Пишу в первый раз.

Дополнение. в формуле надо дополнить строку двумя буквами "ь" и "ъ". Так "аеёиоуыьъэюя"
Количество знаков в формуле 114
К сообщению приложен файл: _AL_AlexM.xls (30.5 Kb)



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


Сообщение отредактировал AlexM - Вторник, 23.10.2012, 08:43
 
Ответить
СообщениеТакая формула подойдет?
Code
=ЕСЛИ(ЕОШ(НАЙТИ(111;СУММПРОИЗВ(ЕОШ(ПОИСК(ПСТР(A1;СТРОКА($1:$99);1);"аеёиоуыэюя"))*10^(СТРОКА($1:$99)-1))));"";A1)


Извините, если сообщение неправильно оформил. Пишу в первый раз.

Дополнение. в формуле надо дополнить строку двумя буквами "ь" и "ъ". Так "аеёиоуыьъэюя"
Количество знаков в формуле 114

Автор - AlexM
Дата добавления - 22.10.2012 в 11:16
Gustav Дата: Понедельник, 22.10.2012, 11:24 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2739
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Ну, тогда и я свои "лобовые" 218 символов с истиной по 3 согласным представлю. Честно говоря, думал, что более "в лобово" и не сделать smile
[vba]
Code
=ИЛИ(ДЛСТР(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПСТР(СТРОЧН(A1);СТРОКА($1:$99);3)
;"а";);"е";);"ё";);"и";);"о";)
;"у";);"ы";);"э";);"ю";);"я";)
)=3)
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеНу, тогда и я свои "лобовые" 218 символов с истиной по 3 согласным представлю. Честно говоря, думал, что более "в лобово" и не сделать smile
[vba]
Code
=ИЛИ(ДЛСТР(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПСТР(СТРОЧН(A1);СТРОКА($1:$99);3)
;"а";);"е";);"ё";);"и";);"о";)
;"у";);"ы";);"э";);"ю";);"я";)
)=3)
[/vba]

Автор - Gustav
Дата добавления - 22.10.2012 в 11:24
MCH Дата: Понедельник, 22.10.2012, 13:00 | Сообщение № 14
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Quote (Gustav)
;"а";);"е";);"ё";);"и";);"о";);"у";);"ы";);"э";);"ю";);"я";)

А где твердый и магкий знак, это ведь тоже не согласные
 
Ответить
Сообщение
Quote (Gustav)
;"а";);"е";);"ё";);"и";);"о";);"у";);"ы";);"э";);"ю";);"я";)

А где твердый и магкий знак, это ведь тоже не согласные

Автор - MCH
Дата добавления - 22.10.2012 в 13:00
Gustav Дата: Понедельник, 22.10.2012, 13:19 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2739
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Quote (MCH)
А где твердый и магкий знак, это ведь тоже не согласные

Ну, тогда к 218 еще два раза по 17 символов.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Quote (MCH)
А где твердый и магкий знак, это ведь тоже не согласные

Ну, тогда к 218 еще два раза по 17 символов.

Автор - Gustav
Дата добавления - 22.10.2012 в 13:19
LightZ Дата: Понедельник, 22.10.2012, 22:24 | Сообщение № 16
Группа: Авторы
Ранг: Форумчанин
Сообщений: 120
Репутация: 48 ±
Замечаний: 0% ±

Сойдет?

[vba]
Code
Sub tests()
Application.ScreenUpdating = False
     Dim counter As Long
     Dim rng As Range
     Dim finalRow As Long
     finalRow = Cells(Rows.Count, 1).End(xlUp).Row

     For Each rng In Range("a1:a" & finalRow).Cells
         If абракадабра_какая_то(rng.Value) Then
             counter = counter + 1
             Cells(counter, 2).Value = rng.Value
         End If
     Next
Application.ScreenUpdating = True
End Sub

Function абракадабра_какая_то(cel As String) As Boolean
     Const letts$ = "й ц к н г ш щ з х ф в п р л д ж ч с м т б"
     Dim i&, j&, c&
     Dim celMid$, li&

     For i = 1 To Len(cel)
         celMid = Mid(cel, i, 3)
         For li = 1 To Len(celMid)
             For j = 0 To UBound(Split(letts))
                 If LCase(Mid(celMid, li, 1)) = Split(letts)(j) Then
                     c = c + 1
                 End If
             Next
         Next
         If c >= 3 Then
             абракадабра_какая_то = True
             Exit Function
         Else
             абракадабра_какая_то = False
             c = 0
         End If
     Next
End Function
[/vba]
К сообщению приложен файл: _AL_LightZ.xls (55.0 Kb)


E-mail: overseerpower@gmail.com
Skype: Bogdan_Rud
WMR: R166238237296
 
Ответить
СообщениеСойдет?

[vba]
Code
Sub tests()
Application.ScreenUpdating = False
     Dim counter As Long
     Dim rng As Range
     Dim finalRow As Long
     finalRow = Cells(Rows.Count, 1).End(xlUp).Row

     For Each rng In Range("a1:a" & finalRow).Cells
         If абракадабра_какая_то(rng.Value) Then
             counter = counter + 1
             Cells(counter, 2).Value = rng.Value
         End If
     Next
Application.ScreenUpdating = True
End Sub

Function абракадабра_какая_то(cel As String) As Boolean
     Const letts$ = "й ц к н г ш щ з х ф в п р л д ж ч с м т б"
     Dim i&, j&, c&
     Dim celMid$, li&

     For i = 1 To Len(cel)
         celMid = Mid(cel, i, 3)
         For li = 1 To Len(celMid)
             For j = 0 To UBound(Split(letts))
                 If LCase(Mid(celMid, li, 1)) = Split(letts)(j) Then
                     c = c + 1
                 End If
             Next
         Next
         If c >= 3 Then
             абракадабра_какая_то = True
             Exit Function
         Else
             абракадабра_какая_то = False
             c = 0
         End If
     Next
End Function
[/vba]

Автор - LightZ
Дата добавления - 22.10.2012 в 22:24
KuklP Дата: Понедельник, 22.10.2012, 22:56 | Сообщение № 17
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
[vba]
Code
Public Sub Chars3()
       Dim c As Range
       With CreateObject("VBScript.RegExp")
           .IgnoreCase = True
           .Pattern = "[бвгджзлмнпрстфкчшщ]{3}"
           For Each c In [a1].CurrentRegion.Cells
               If .test(c) Then c(, 2) = c: c = ""
           Next
       End With
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Понедельник, 22.10.2012, 23:17
 
Ответить
Сообщение[vba]
Code
Public Sub Chars3()
       Dim c As Range
       With CreateObject("VBScript.RegExp")
           .IgnoreCase = True
           .Pattern = "[бвгджзлмнпрстфкчшщ]{3}"
           For Each c In [a1].CurrentRegion.Cells
               If .test(c) Then c(, 2) = c: c = ""
           Next
       End With
End Sub
[/vba]

Автор - KuklP
Дата добавления - 22.10.2012 в 22:56
LightZ Дата: Понедельник, 22.10.2012, 23:19 | Сообщение № 18
Группа: Авторы
Ранг: Форумчанин
Сообщений: 120
Репутация: 48 ±
Замечаний: 0% ±

Регулярные выражения - сила


E-mail: overseerpower@gmail.com
Skype: Bogdan_Rud
WMR: R166238237296
 
Ответить
СообщениеРегулярные выражения - сила

Автор - LightZ
Дата добавления - 22.10.2012 в 23:19
Светлый Дата: Пятница, 29.07.2016, 20:26 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Вставлю и свои пять копеек.
Проверка каждого слова 108 и 96 символов:
Код
=ИЛИ(ЧАСТОТА(СТОЛБЕЦ(A:Z);ЕОШ(1/(ПОИСК(ПСТР(A1;СТОЛБЕЦ(A:Z);1);"#бвгджзйклмнпрстфхцчшщ")-1))*СТОЛБЕЦ(A:Z))=4)

Код
=ИЛИ(ЧАСТОТА(СТОЛБЕЦ(A:Z);СТОЛБЕЦ(A:Z)*(1-ЕОШ(ПОИСК(ПСТР(A1;СТОЛБЕЦ(A:Z);1);"аеёиоуъыьэюя"))))=4)

И список с проверкой на ошибку 262 символа(без проверки 256):
Код
=СМЕЩ(A$1;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(ЕОШ(ПОИСК(ПСТР(A$1:A$11;СТОЛБЕЦ(C:Z);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A$11;СТОЛБЕЦ(B:Y);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A$11;СТОЛБЕЦ(A:X);1);"аеёиоуъыьэюя"));ТРАНСП(СТОЛБЕЦ(A:X)));СТРОКА($1:$11);99);СТРОКА(A1))-1;)&""

Можно даже в 250 символов с проверкой уложиться:
Код
=СМЕЩ(A$1;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(ЕОШ(ПОИСК(ПСТР(A$1:A11;СТОЛБЕЦ(C:Z);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A11;СТОЛБЕЦ(B:Y);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A11;СТОЛБЕЦ(A:X);1);"аеёиоуъыьэюя"));СТРОКА(1:24));СТРОКА($1:11);99);СТРОКА(A1))-1;)&""


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Пятница, 29.07.2016, 20:50
 
Ответить
СообщениеВставлю и свои пять копеек.
Проверка каждого слова 108 и 96 символов:
Код
=ИЛИ(ЧАСТОТА(СТОЛБЕЦ(A:Z);ЕОШ(1/(ПОИСК(ПСТР(A1;СТОЛБЕЦ(A:Z);1);"#бвгджзйклмнпрстфхцчшщ")-1))*СТОЛБЕЦ(A:Z))=4)

Код
=ИЛИ(ЧАСТОТА(СТОЛБЕЦ(A:Z);СТОЛБЕЦ(A:Z)*(1-ЕОШ(ПОИСК(ПСТР(A1;СТОЛБЕЦ(A:Z);1);"аеёиоуъыьэюя"))))=4)

И список с проверкой на ошибку 262 символа(без проверки 256):
Код
=СМЕЩ(A$1;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(ЕОШ(ПОИСК(ПСТР(A$1:A$11;СТОЛБЕЦ(C:Z);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A$11;СТОЛБЕЦ(B:Y);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A$11;СТОЛБЕЦ(A:X);1);"аеёиоуъыьэюя"));ТРАНСП(СТОЛБЕЦ(A:X)));СТРОКА($1:$11);99);СТРОКА(A1))-1;)&""

Можно даже в 250 символов с проверкой уложиться:
Код
=СМЕЩ(A$1;НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ(ЕОШ(ПОИСК(ПСТР(A$1:A11;СТОЛБЕЦ(C:Z);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A11;СТОЛБЕЦ(B:Y);1);"аеёиоуъыьэюя"))*ЕОШ(ПОИСК(ПСТР(A$1:A11;СТОЛБЕЦ(A:X);1);"аеёиоуъыьэюя"));СТРОКА(1:24));СТРОКА($1:11);99);СТРОКА(A1))-1;)&""

Автор - Светлый
Дата добавления - 29.07.2016 в 20:26
Мир MS Excel » Работа и общение » Мозговой штурм » Длинношеее
  • Страница 1 из 1
  • 1
Поиск:

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