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

Вход

Регистрация

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

 

= Мир MS Excel/Счет значений в заданном пределе. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Счет значений в заданном пределе. (Формулы/Formulas)
Счет значений в заданном пределе.
Ипалит Дата: Четверг, 19.05.2016, 16:45 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте господа.
Исходя из названия задача проста. Но есть но.
Значений в ячейки может быть как одно так и несколько, записаны через запятую, расположены в любой последовательности, каждое значение состоит только из 3-х цифр.
С пределом искомых значений тоже не все просто. Он может быть расположен последовательно например от 140-158 так и с промежутками 102,119. Также эти два предела могут быть объедены в один 140-158,102,119
К сообщению приложен файл: _Microsoft_Exce.xls (24.0 Kb)
 
Ответить
СообщениеЗдравствуйте господа.
Исходя из названия задача проста. Но есть но.
Значений в ячейки может быть как одно так и несколько, записаны через запятую, расположены в любой последовательности, каждое значение состоит только из 3-х цифр.
С пределом искомых значений тоже не все просто. Он может быть расположен последовательно например от 140-158 так и с промежутками 102,119. Также эти два предела могут быть объедены в один 140-158,102,119

Автор - Ипалит
Дата добавления - 19.05.2016 в 16:45
ArkaIIIa Дата: Четверг, 19.05.2016, 17:25 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Ипалит
Есть какой-то предел по кол-ву чисел/диапазонов? Проще говоря - запятых может быть какое-то ограниченное кол-во?
 
Ответить
СообщениеИпалит
Есть какой-то предел по кол-ву чисел/диапазонов? Проще говоря - запятых может быть какое-то ограниченное кол-во?

Автор - ArkaIIIa
Дата добавления - 19.05.2016 в 17:25
Ипалит Дата: Четверг, 19.05.2016, 17:28 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Есть какой-то предел по кол-ву чисел/диапазонов? Проще говоря - запятых может быть какое-то ограниченное кол-во?

Более 20 не будет
 
Ответить
Сообщение
Есть какой-то предел по кол-ву чисел/диапазонов? Проще говоря - запятых может быть какое-то ограниченное кол-во?

Более 20 не будет

Автор - Ипалит
Дата добавления - 19.05.2016 в 17:28
pabchek Дата: Четверг, 19.05.2016, 17:55 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте. Мой вариант
Код
=СУММ(ЕСЛИОШИБКА(ПСТР(A3;ПОИСК("-";A3)+1;3)-ПСТР(A3;ПОИСК("-";A3)-3;3);0);СУММПРОИЗВ(--(ПСТР(A3;СТРОКА(I$1:I$99);1)=",")))+1
К сообщению приложен файл: 1517289.xls (25.0 Kb)


"Учиться, учиться и еще раз учиться!"
WM: R399923528092


Сообщение отредактировал pabchek - Четверг, 19.05.2016, 18:10
 
Ответить
СообщениеЗдравствуйте. Мой вариант
Код
=СУММ(ЕСЛИОШИБКА(ПСТР(A3;ПОИСК("-";A3)+1;3)-ПСТР(A3;ПОИСК("-";A3)-3;3);0);СУММПРОИЗВ(--(ПСТР(A3;СТРОКА(I$1:I$99);1)=",")))+1

Автор - pabchek
Дата добавления - 19.05.2016 в 17:55
Ипалит Дата: Четверг, 19.05.2016, 18:39 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Мой вариант

Наверное не правильно описал свою задачу и меня не поняли. Извиняюсь если кого ввел в заблуждение
Мне необходимо подсчитать количество значений соответствующих условию.
Значения могут быть как одно в ячейке так и несколько записанные через запятую, расположенные в разных оследовательностях.
Условия тоже будут разные.
К сообщению приложен файл: 6191612.xls (25.0 Kb)


Сообщение отредактировал Ипалит - Четверг, 19.05.2016, 20:13
 
Ответить
Сообщение
Мой вариант

Наверное не правильно описал свою задачу и меня не поняли. Извиняюсь если кого ввел в заблуждение
Мне необходимо подсчитать количество значений соответствующих условию.
Значения могут быть как одно в ячейке так и несколько записанные через запятую, расположенные в разных оследовательностях.
Условия тоже будут разные.

Автор - Ипалит
Дата добавления - 19.05.2016 в 18:39
Ипалит Дата: Четверг, 19.05.2016, 20:16 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Обновляю файл. Может так понятнее будет
К сообщению приложен файл: 6513943.xls (25.0 Kb)
 
Ответить
СообщениеОбновляю файл. Может так понятнее будет

Автор - Ипалит
Дата добавления - 19.05.2016 в 20:16
pabchek Дата: Пятница, 20.05.2016, 08:35 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
не правильно описал свою задачу и меня не поняли
Очень хочется поворчать


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
Сообщение
не правильно описал свою задачу и меня не поняли
Очень хочется поворчать

Автор - pabchek
Дата добавления - 20.05.2016 в 08:35
abtextime Дата: Пятница, 20.05.2016, 12:14 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Смотрите, через UDF (прошу прощения у VBA-эстетов, самому противно смотреть :) )
[vba]
Код
Public Function VPredele(RR As Range, S As String) As Integer

Dim A(100 To 999) As Integer
Dim B(100 To 999) As Boolean

For i = 100 To 999
    A(i) = 0
    B(i) = False
Next i

For Each R In RR
    
    Zap = Len(R) - Len(Replace(R, ",", ""))
    
    SSS = Split(R.Value, ",", Zap + 1, vbBinaryCompare)
      
    
    For i = 0 To Zap
      
        If Len(SSS(i)) > Len(Replace(SSS(i), "-", "")) Then
            SSSS = Split(SSS(i), "-")
            For j = (SSSS(0) + 0) To (SSSS(1) + 0)
                A(j) = A(j) + 1
            Next j
        Else: A(SSS(i) + 0) = A(SSS(i) + 0) + 1
        End If
    
    Next i
    
Next

Zap = Len(S) - Len(Replace(S, ",", ""))

SSS = Split(S, ",")

For i = 0 To Zap
      
        If Len(SSS(i)) > Len(Replace(SSS(i), "-", "")) Then
            SSSS = Split(SSS(i), "-")
            For j = (SSSS(0) + 0) To (SSSS(1) + 0)
                B(j) = True
            Next j
        Else: B(SSS(i) + 0) = True
        End If
    
Next i

For i = 100 To 999

    If B(i) Then VPredele = VPredele + A(i)

Next i

End Function
[/vba]
К сообщению приложен файл: _6191612.xlsm (19.1 Kb)
 
Ответить
СообщениеСмотрите, через UDF (прошу прощения у VBA-эстетов, самому противно смотреть :) )
[vba]
Код
Public Function VPredele(RR As Range, S As String) As Integer

Dim A(100 To 999) As Integer
Dim B(100 To 999) As Boolean

For i = 100 To 999
    A(i) = 0
    B(i) = False
Next i

For Each R In RR
    
    Zap = Len(R) - Len(Replace(R, ",", ""))
    
    SSS = Split(R.Value, ",", Zap + 1, vbBinaryCompare)
      
    
    For i = 0 To Zap
      
        If Len(SSS(i)) > Len(Replace(SSS(i), "-", "")) Then
            SSSS = Split(SSS(i), "-")
            For j = (SSSS(0) + 0) To (SSSS(1) + 0)
                A(j) = A(j) + 1
            Next j
        Else: A(SSS(i) + 0) = A(SSS(i) + 0) + 1
        End If
    
    Next i
    
Next

Zap = Len(S) - Len(Replace(S, ",", ""))

SSS = Split(S, ",")

For i = 0 To Zap
      
        If Len(SSS(i)) > Len(Replace(SSS(i), "-", "")) Then
            SSSS = Split(SSS(i), "-")
            For j = (SSSS(0) + 0) To (SSSS(1) + 0)
                B(j) = True
            Next j
        Else: B(SSS(i) + 0) = True
        End If
    
Next i

For i = 100 To 999

    If B(i) Then VPredele = VPredele + A(i)

Next i

End Function
[/vba]

Автор - abtextime
Дата добавления - 20.05.2016 в 12:14
krosav4ig Дата: Пятница, 20.05.2016, 18:53 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Ипалит, 140-158 это два числа 140 и 158, или все числа от 140 до 158 (нужно ли считать совпадения чисел 141, 142, 143 ... 157 ?)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеИпалит, 140-158 это два числа 140 и 158, или все числа от 140 до 158 (нужно ли считать совпадения чисел 141, 142, 143 ... 157 ?)

Автор - krosav4ig
Дата добавления - 20.05.2016 в 18:53
abtextime Дата: Пятница, 20.05.2016, 19:00 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
krosav4iq
Я делал, как для диапазона. В противном смысле зачем "-", если это то же самое, что и ","
 
Ответить
Сообщениеkrosav4iq
Я делал, как для диапазона. В противном смысле зачем "-", если это то же самое, что и ","

Автор - abtextime
Дата добавления - 20.05.2016 в 19:00
krosav4ig Дата: Пятница, 20.05.2016, 21:48 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
До кучи, "формульный" вариант (макрофункция)
К сообщению приложен файл: 2102880.xls (30.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 20.05.2016, 21:50
 
Ответить
СообщениеДо кучи, "формульный" вариант (макрофункция)

Автор - krosav4ig
Дата добавления - 20.05.2016 в 21:48
Michael_S Дата: Суббота, 21.05.2016, 01:24 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
abtextime, в вашей функции вот это блок;
[vba]
Код
For i = 100 To 999
    A(i) = 0
    B(i) = False
Next i
[/vba]лишний.При инициализации массивов они и так равны нулю и False. (Правда не вредит)
 
Ответить
Сообщениеabtextime, в вашей функции вот это блок;
[vba]
Код
For i = 100 To 999
    A(i) = 0
    B(i) = False
Next i
[/vba]лишний.При инициализации массивов они и так равны нулю и False. (Правда не вредит)

Автор - Michael_S
Дата добавления - 21.05.2016 в 01:24
abtextime Дата: Суббота, 21.05.2016, 01:42 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Michael_S

Я в курсе. Просто так нагляднее
 
Ответить
СообщениеMichael_S

Я в курсе. Просто так нагляднее

Автор - abtextime
Дата добавления - 21.05.2016 в 01:42
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Счет значений в заданном пределе. (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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