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

Вход

Регистрация

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

 

= Мир MS Excel/Количество чисел в ячейке - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Количество чисел в ячейке (Формулы/Formulas)
Количество чисел в ячейке
bird5 Дата: Воскресенье, 11.06.2017, 12:19 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте, уважаемые форумчане!
Вот какая задачка:
В ячейке (в одной!) написан ряд чисел. Например: 1,3,5-8.
Очевидно, что всего чисел 6 (1,3,5,6,7,8)
Каким образом можно вывести этот результат (6) в другую ячейку?

Заранее благодарю за помощь!


С Уважением к Вам!

Сообщение отредактировал bird5 - Воскресенье, 11.06.2017, 13:56
 
Ответить
СообщениеЗдравствуйте, уважаемые форумчане!
Вот какая задачка:
В ячейке (в одной!) написан ряд чисел. Например: 1,3,5-8.
Очевидно, что всего чисел 6 (1,3,5,6,7,8)
Каким образом можно вывести этот результат (6) в другую ячейку?

Заранее благодарю за помощь!

Автор - bird5
Дата добавления - 11.06.2017 в 12:19
Nic70y Дата: Воскресенье, 11.06.2017, 12:38 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8753
Репутация: 2270 ±
Замечаний: 0% ±

Excel 2010
не податливый
щас придут модераторы и "наподдают".
они тут злые все:
1) заставляют соблюдать правила
2) не разрешают помогать тем, кто их нарушает
и форумчане злые тоже - вместо того, что бы ответить, начинают умничать
%)


ЮMoney 41001841029809
 
Ответить
Сообщение
не податливый
щас придут модераторы и "наподдают".
они тут злые все:
1) заставляют соблюдать правила
2) не разрешают помогать тем, кто их нарушает
и форумчане злые тоже - вместо того, что бы ответить, начинают умничать
%)

Автор - Nic70y
Дата добавления - 11.06.2017 в 12:38
bird5 Дата: Воскресенье, 11.06.2017, 12:45 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Nic70y, я вроде ничего не нарушил. Или я правила читал задом наперед?
Что касается прилагаемого файла, то задачка то общего характера. Мне кажется файл не нужен.


С Уважением к Вам!
 
Ответить
СообщениеNic70y, я вроде ничего не нарушил. Или я правила читал задом наперед?
Что касается прилагаемого файла, то задачка то общего характера. Мне кажется файл не нужен.

Автор - bird5
Дата добавления - 11.06.2017 в 12:45
Nic70y Дата: Воскресенье, 11.06.2017, 13:05 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8753
Репутация: 2270 ±
Замечаний: 0% ±

Excel 2010
ну как- бы тонкий намек:
2.Очень ВАЖНО! При создании темы, давайте теме название, отражающее суть Вашей проблемы

а так в принципе под такое название подойдут все вопросы, а не только Ваш.


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Воскресенье, 11.06.2017, 13:05
 
Ответить
Сообщениену как- бы тонкий намек:
2.Очень ВАЖНО! При создании темы, давайте теме название, отражающее суть Вашей проблемы

а так в принципе под такое название подойдут все вопросы, а не только Ваш.

Автор - Nic70y
Дата добавления - 11.06.2017 в 13:05
zs Дата: Воскресенье, 11.06.2017, 13:16 | Сообщение № 5
Группа: Заблокированные
Ранг: Участник
Сообщений: 87
Репутация: -19 ±
Замечаний: 100% ±

Excel 2003
длина фразы с запятыми минус длина фразы без запятых плюс один
 
Ответить
Сообщениедлина фразы с запятыми минус длина фразы без запятых плюс один

Автор - zs
Дата добавления - 11.06.2017 в 13:16
Nic70y Дата: Воскресенье, 11.06.2017, 13:42 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 8753
Репутация: 2270 ±
Замечаний: 0% ±

Excel 2010
zs, а чего это Вы хулиганите?
2) не разрешают помогать тем, кто их нарушает
хотя ладно, ответ то не верный все равно.


ЮMoney 41001841029809
 
Ответить
Сообщениеzs, а чего это Вы хулиганите?
2) не разрешают помогать тем, кто их нарушает
хотя ладно, ответ то не верный все равно.

Автор - Nic70y
Дата добавления - 11.06.2017 в 13:42
bird5 Дата: Воскресенье, 11.06.2017, 13:57 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Nic70y, )
Поправил название)


С Уважением к Вам!
 
Ответить
СообщениеNic70y, )
Поправил название)

Автор - bird5
Дата добавления - 11.06.2017 в 13:57
zs Дата: Воскресенье, 11.06.2017, 14:05 | Сообщение № 8
Группа: Заблокированные
Ранг: Участник
Сообщений: 87
Репутация: -19 ±
Замечаний: 100% ±

Excel 2003
1,2,3,4,5,6-11;
123456-6;
11-6+1=6 ч.т.д
и где ошибка,


Сообщение отредактировал zs - Воскресенье, 11.06.2017, 14:16
 
Ответить
Сообщение1,2,3,4,5,6-11;
123456-6;
11-6+1=6 ч.т.д
и где ошибка,

Автор - zs
Дата добавления - 11.06.2017 в 14:05
buchlotnik Дата: Воскресенье, 11.06.2017, 14:09 | Сообщение № 9
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
и где ошибка
однако... zs, вы сообщение №1 читали? 1,2,3,4,5,6-11 - это 1,2,3,4,5,6,7,8,9,10,11 - и правильный ответ, как ни странно - 11!
 
Ответить
Сообщение
Цитата
и где ошибка
однако... zs, вы сообщение №1 читали? 1,2,3,4,5,6-11 - это 1,2,3,4,5,6,7,8,9,10,11 - и правильный ответ, как ни странно - 11!

Автор - buchlotnik
Дата добавления - 11.06.2017 в 14:09
vikttur Дата: Воскресенье, 11.06.2017, 14:21 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Функция пользователя:
[vba]
Код
Function NumCount(r As Range)
Dim aSpl
Dim lCnt As Long, j As Long
    aSpl = Split(r.Value, ",") ' делим на части
    
    For j = 0 To UBound(aSpl)
        If " " & aSpl(j) & " " Like "*-*" Then ' проверяем наличие тире
            lCnt = lCnt + Val(Split(aSpl(j), "-")(1)) - _
                            Val(Split(aSpl(j), "-")(0)) + 1
        Else
            lCnt = lCnt + 1
        End If
    Next j

    NumCount = lCnt
End Function
[/vba]
К сообщению приложен файл: 3188391.xlsm (13.6 Kb)


Сообщение отредактировал vikttur - Воскресенье, 11.06.2017, 14:22
 
Ответить
СообщениеФункция пользователя:
[vba]
Код
Function NumCount(r As Range)
Dim aSpl
Dim lCnt As Long, j As Long
    aSpl = Split(r.Value, ",") ' делим на части
    
    For j = 0 To UBound(aSpl)
        If " " & aSpl(j) & " " Like "*-*" Then ' проверяем наличие тире
            lCnt = lCnt + Val(Split(aSpl(j), "-")(1)) - _
                            Val(Split(aSpl(j), "-")(0)) + 1
        Else
            lCnt = lCnt + 1
        End If
    Next j

    NumCount = lCnt
End Function
[/vba]

Автор - vikttur
Дата добавления - 11.06.2017 в 14:21
buchlotnik Дата: Воскресенье, 11.06.2017, 14:23 | Сообщение № 11
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
чёт формулами не думается - udf-ка
[vba]
Код
Function numcalc%(t$)
    Dim r, i%, s%
    r = Split(t, ",")
    For i = 0 To UBound(r)
        If Evaluate(r(i)) < 0 Then s = s - Evaluate(r(i)) + 1 Else s = i + 1
    Next
    numcalc = s
End Function
[/vba]
К сообщению приложен файл: numcalc.xlsm (13.1 Kb)
 
Ответить
Сообщениечёт формулами не думается - udf-ка
[vba]
Код
Function numcalc%(t$)
    Dim r, i%, s%
    r = Split(t, ",")
    For i = 0 To UBound(r)
        If Evaluate(r(i)) < 0 Then s = s - Evaluate(r(i)) + 1 Else s = i + 1
    Next
    numcalc = s
End Function
[/vba]

Автор - buchlotnik
Дата добавления - 11.06.2017 в 14:23
Gustav Дата: Воскресенье, 11.06.2017, 14:27 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2728
Репутация: 1128 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Функция пользователя

Та же фигня:
[vba]
Код
Function UDF_COUNTNUMS(val)
    UDF_COUNTNUMS = Range(Replace(Replace("A" & val, ",", ",A"), "-", ":A")).Count
End Function
[/vba]
Преобразование 1,3,5-8 => диапазон A1,A3,A5:A8, а дальше - дело техники по подсчету количества ячеек диапазона.


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

Сообщение отредактировал Gustav - Воскресенье, 11.06.2017, 14:29
 
Ответить
Сообщение
Функция пользователя

Та же фигня:
[vba]
Код
Function UDF_COUNTNUMS(val)
    UDF_COUNTNUMS = Range(Replace(Replace("A" & val, ",", ",A"), "-", ":A")).Count
End Function
[/vba]
Преобразование 1,3,5-8 => диапазон A1,A3,A5:A8, а дальше - дело техники по подсчету количества ячеек диапазона.

Автор - Gustav
Дата добавления - 11.06.2017 в 14:27
vikttur Дата: Воскресенье, 11.06.2017, 14:36 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Чем ниже, тем меньше :)
 
Ответить
СообщениеЧем ниже, тем меньше :)

Автор - vikttur
Дата добавления - 11.06.2017 в 14:36
buchlotnik Дата: Воскресенье, 11.06.2017, 14:37 | Сообщение № 14
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
[offtop]
Цитата
Чем ниже, тем меньше
ещё б быстродействие сравнить, но лень :)
 
Ответить
Сообщение[offtop]
Цитата
Чем ниже, тем меньше
ещё б быстродействие сравнить, но лень :)

Автор - buchlotnik
Дата добавления - 11.06.2017 в 14:37
vikttur Дата: Воскресенье, 11.06.2017, 14:42 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Набросок для однозначных чисел.
Цитата
Чем ниже...

Продолжайте уменьшать :)
Код
=СУММ(--(0&ЕСЛИОШИБКА(ПРАВБ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(","&A1;",";ПОВТОР(" ";50));СТРОКА($1:$9)*50;50)))-ЛЕВБ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(","&A1;",";ПОВТОР(" ";50));СТРОКА($1:$9)*50;50)))+1;СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(","&A1;",";ПОВТОР(" ";50));СТРОКА($1:$9)*50;50)))))


Сообщение отредактировал vikttur - Воскресенье, 11.06.2017, 14:43
 
Ответить
СообщениеНабросок для однозначных чисел.
Цитата
Чем ниже...

Продолжайте уменьшать :)
Код
=СУММ(--(0&ЕСЛИОШИБКА(ПРАВБ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(","&A1;",";ПОВТОР(" ";50));СТРОКА($1:$9)*50;50)))-ЛЕВБ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(","&A1;",";ПОВТОР(" ";50));СТРОКА($1:$9)*50;50)))+1;СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(","&A1;",";ПОВТОР(" ";50));СТРОКА($1:$9)*50;50)))))

Автор - vikttur
Дата добавления - 11.06.2017 в 14:42
bird5 Дата: Воскресенье, 11.06.2017, 15:03 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
vikttur, NUMCOUNT отлично работает!!!
Огромное СПАСИБО ВАМ и всем кто откликнулся!!!


С Уважением к Вам!
 
Ответить
Сообщениеvikttur, NUMCOUNT отлично работает!!!
Огромное СПАСИБО ВАМ и всем кто откликнулся!!!

Автор - bird5
Дата добавления - 11.06.2017 в 15:03
Nic70y Дата: Воскресенье, 11.06.2017, 15:12 | Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 8753
Репутация: 2270 ±
Замечаний: 0% ±

Excel 2010
ну и макрофункция
Код
=ВЫЧИСЛИТЬ("МИН(-1;"&ПОДСТАВИТЬ(Лист1!A1;",";"-1)+МИН(-1;")&"-1)")
для русской версии
К сообщению приложен файл: 0692508.xlsm (10.1 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениену и макрофункция
Код
=ВЫЧИСЛИТЬ("МИН(-1;"&ПОДСТАВИТЬ(Лист1!A1;",";"-1)+МИН(-1;")&"-1)")
для русской версии

Автор - Nic70y
Дата добавления - 11.06.2017 в 15:12
Gustav Дата: Воскресенье, 11.06.2017, 19:48 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2728
Репутация: 1128 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Задачка показалась интересной для перекидывания мостка в таблицы Google. Там с помощью табличных функций SPLIT и JOIN, а также всемогущей QUERY, на которые мы в Excel, к сожалению, можем пока только облизываться, удалось получить список чисел шаблона по отдельным ячейкам, после чего задача подсчёта свелась к тривиальному COUNT либо по диапазону, занятому отдельными числами, либо к включению COUNT в общую формулу в качестве самой внешней опоясывающей функции. Я же от показа списка чисел по отдельности не мог удержаться.

https://docs.google.com/spreads....sharing


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеЗадачка показалась интересной для перекидывания мостка в таблицы Google. Там с помощью табличных функций SPLIT и JOIN, а также всемогущей QUERY, на которые мы в Excel, к сожалению, можем пока только облизываться, удалось получить список чисел шаблона по отдельным ячейкам, после чего задача подсчёта свелась к тривиальному COUNT либо по диапазону, занятому отдельными числами, либо к включению COUNT в общую формулу в качестве самой внешней опоясывающей функции. Я же от показа списка чисел по отдельности не мог удержаться.

https://docs.google.com/spreads....sharing

Автор - Gustav
Дата добавления - 11.06.2017 в 19:48
Nic70y Дата: Воскресенье, 11.06.2017, 20:40 | Сообщение № 19
Группа: Друзья
Ранг: Экселист
Сообщений: 8753
Репутация: 2270 ±
Замечаний: 0% ±

Excel 2010
Gustav, с тех пор как наш всеми (экселистами) любимый Вильям отошел от дел
микрософт косячит, то с мобильными устройствами, то с офис 2016,
переводя ожидаемые функции в подписку,
гугл не дремлет, подминает под себя линункс и т.д.

Зачем Вы его (гугл) регулярно рекламируете (он в рекламе не нуждается)?
тем самым добивая стареющий, маленький (микро)софт.
Безобразие!


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Воскресенье, 11.06.2017, 20:41
 
Ответить
СообщениеGustav, с тех пор как наш всеми (экселистами) любимый Вильям отошел от дел
микрософт косячит, то с мобильными устройствами, то с офис 2016,
переводя ожидаемые функции в подписку,
гугл не дремлет, подминает под себя линункс и т.д.

Зачем Вы его (гугл) регулярно рекламируете (он в рекламе не нуждается)?
тем самым добивая стареющий, маленький (микро)софт.
Безобразие!

Автор - Nic70y
Дата добавления - 11.06.2017 в 20:40
zs Дата: Вторник, 13.06.2017, 07:47 | Сообщение № 20
Группа: Заблокированные
Ранг: Участник
Сообщений: 87
Репутация: -19 ±
Замечаний: 100% ±

Excel 2003
Код
=ДЛСТР(B14)-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B14;",";"");"-";""))+(ПСТР(B14;ПОИСК("-";B14;1)+1;2)-ПСТР(B14;ПОИСК("-";B14;1)-1;1))

для числового ряда с одним интервалом


Сообщение отредактировал zs - Вторник, 13.06.2017, 09:37
 
Ответить
Сообщение
Код
=ДЛСТР(B14)-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B14;",";"");"-";""))+(ПСТР(B14;ПОИСК("-";B14;1)+1;2)-ПСТР(B14;ПОИСК("-";B14;1)-1;1))

для числового ряда с одним интервалом

Автор - zs
Дата добавления - 13.06.2017 в 07:47
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Количество чисел в ячейке (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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