Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2017, 20:40   #11
peq
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 230
По умолчанию

>>Окончание может быть только "a-z" или случайный пробел(ы)

ну так с этого тогда надо было начинать.. из написанного выше в топике и внутри файла это никак не следует

>>Мне надо чтобы я знал и понимал .

чтобы знать и понимать надо думать самому.. если хотите - можете подумать.. если не хотите - можете не заморачиваться.. хозяин-барин
peq вне форума Ответить с цитированием
Старый 20.01.2017, 20:59   #12
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Ну вдруг будет время и желание почитать vba, как вариант рассмотрите код
Код:
Function CountIfOnlyLatin(rng As Range) As String
    Dim LatinAlphbet As String
    Dim str As String
    Dim cel As Range
    Dim count As Long
    CountIfOnlyLatin = ""
    On Error GoTo ext
    count = 0
    LatinAlphbet = "*[abcdefghijklmnopqrstuvwxyz]*"
    ' перебираем диапазон
    For Each cel In rng
'    приводим в нижний регистр значение
        str = LCase(cel)
'        если str состоит из латиницы
        If str Like LatinAlphbet Then
'        сохраняем адресс  ячейки и увеличиваем счетчик
            CountIfOnlyLatin = CountIfOnlyLatin & cel.Address & "; "
            count = count + 1
        End If
    Next
'    формируем выходную строку
    CountIfOnlyLatin = count & "( " & Left(CountIfOnlyLatin, Len(CountIfOnlyLatin) - 2) & ")"
    Exit Function
ext:
    CountIfOnlyLatin = ""
End Function


Function CountIfOnlyCyrylic(rng As Range) As String
    Dim LatinAlphbet As String
    Dim str As String
    Dim cel As Range
    Dim count As Long
    CountIfOnlyCyrylic = ""
    On Error GoTo ext
    count = 0
    LatinAlphbet = "*[abcdefghijklmnopqrstuvwxyz]*"
    ' перебираем диапазон
    For Each cel In rng
'    приводим в нижний регистр значение
        str = LCase(cel)
'        если str НЕ состоит из латиницы
        If Not (str Like LatinAlphbet) Then
'        сохраняем адресс  ячейки и увеличиваем счетчик
            CountIfOnlyCyrylic = CountIfOnlyCyrylic & cel.Address & "; "
            count = count + 1
        End If
    Next
'    формируем выходную строку
    CountIfOnlyCyrylic = count & "( " & Left(CountIfOnlyCyrylic, Len(CountIfOnlyCyrylic) - 2) & ")"
    Exit Function
ext:
    CountIfOnlyCyrylic = ""
End Function
по мелочи допилить, но суть, думаю, понятна
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 20.01.2017, 21:22   #13
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
По умолчанию

Александр, спасибо за уделенное время

Цитата:
...суть, думаю, понятна...
Я тоже так думаю...
Осталось уточнить кому

А можно один "каверзный" вопрос
пятью постами выше я писал
Цитата:
Результат работы серого вещества
Код:
=СУММПРОИЗВ(НЕ(Z5:Z30)*(ПРАВБ(СЖПРО БЕЛЫ(B5:B30))<="z")*(ПРАВБ(СЖПРОБЕЛ Ы(B5:B30))>="a"))
здесь для меня, действительно, все понятно
Какое преимущество в Вашем "понятном" решении, которое надо прокручивать скролингом ?
0mega вне форума Ответить с цитированием
Старый 20.01.2017, 21:33   #14
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от 0mega Посмотреть сообщение
Какое преимущество в Вашем "понятном" решении, которое надо прокручивать скролингом ?
будет работать на версиях старше 2007 в них нету используемой Вами правб А так то да, все пути решения, которые приводят к нужному результату, приемлемы. Вам с peq нравятся сложные формулы, мне - в коде посчитать. Извините если мое сообщение оскорбило Вас. Удачи.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 20.01.2017, 22:19   #15
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
будет работать на версиях старше 2007 в них нету используемой Вами правб...
я сейчас работаю (и естественно формула составлялась тоже ) на 2003-ем
ПРАВБ() - это аналог ПРАВСИМВ() ( эта функция есть даже в 2000-ом )
Скажу Вам по секрету : я лентяй. Печатать лишних 3 (!) знака ?!

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Извините если мое сообщение оскорбило Вас
Откуда у Вас такие мысли ?
Наоборот : рад знакомству и приятному общению
Если будут VBA-вопросы - обязательно обращусь к Вам

Последний раз редактировалось 0mega; 20.01.2017 в 22:22.
0mega вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СчётЕсли по таблице sasha_prof Microsoft Office Access 1 12.07.2013 14:15
СЧЁТЕСЛИ bize Microsoft Office Excel 1 26.01.2013 01:36
СчётЕсли по 2 диапазонам Andrey770 Microsoft Office Excel 6 25.03.2012 20:10
СчётЕсли в Access d_adilet Microsoft Office Access 13 08.12.2011 00:27
СЧЁТЕСЛИ sanych_09 Microsoft Office Excel 2 01.02.2011 17:52