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

Вход

Регистрация

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

 

= Мир MS Excel/Определить количество человек из стринговой строки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Определить количество человек из стринговой строки (Формулы/Formulas)
Определить количество человек из стринговой строки
Юрий_Нд Дата: Пятница, 01.12.2017, 11:17 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 213
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго дня всем.

Можно ли с помощью формул в Excel, без привлечения ВБА решить следующую задачу.
В строке: "мн5р-7,мн4р-1,мн3р-2,мн2р-1,мш6р-1"
Зашифрованы названия профессий и количество человек данной профессии.
В строке нет пробелов, на название профессии отводится только 4 символа, далее тире и количество человек. Например:
"мн5р-7" - машинист 5 разряда, 7 человек.
В данном примере общее количество рабочих: 7 + 1 + 2 + 1 + 1 = 12 рабочих.

С благодарностью ______________ Юрий.
К сообщению приложен файл: -1.xlsx(8.1 Kb)


Сообщение отредактировал Юрий_Нд - Пятница, 01.12.2017, 11:18
 
Ответить
СообщениеДоброго дня всем.

Можно ли с помощью формул в Excel, без привлечения ВБА решить следующую задачу.
В строке: "мн5р-7,мн4р-1,мн3р-2,мн2р-1,мш6р-1"
Зашифрованы названия профессий и количество человек данной профессии.
В строке нет пробелов, на название профессии отводится только 4 символа, далее тире и количество человек. Например:
"мн5р-7" - машинист 5 разряда, 7 человек.
В данном примере общее количество рабочих: 7 + 1 + 2 + 1 + 1 = 12 рабочих.

С благодарностью ______________ Юрий.

Автор - Юрий_Нд
Дата добавления - 01.12.2017 в 11:17
buchlotnik Дата: Пятница, 01.12.2017, 12:01 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3443
Репутация: 923 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Как-то так видимо:
Код
=СУММ(ЕСЛИОШИБКА(--ПРАВБ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C4;",";ПОВТОР(" ";99));1+99*(СТРОКА(A1:A10)-1);99));1);0))
К сообщению приложен файл: 9476646.xlsx(8.4 Kb)
 
Ответить
СообщениеКак-то так видимо:
Код
=СУММ(ЕСЛИОШИБКА(--ПРАВБ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C4;",";ПОВТОР(" ";99));1+99*(СТРОКА(A1:A10)-1);99));1);0))

Автор - buchlotnik
Дата добавления - 01.12.2017 в 12:01
_Boroda_ Дата: Пятница, 01.12.2017, 12:02 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12767
Репутация: 5228 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно? Людей может быть не обязательно до 10 человек? Может быть и больше?
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter
Код
=СУММ(ЕСЛИОШИБКА(--ПСТР(C4;ПОИСК("-";C4;СТРОКА($1:$99))+1;ПОИСК(",";C4&",";СТРОКА($1:$99))-ПОИСК("-";C4;СТРОКА($1:$99))-1);))/ПОИСК("-";C4)

Если длина строки >99 символов, то 99 замените на 256
Для произвольного (но одинакового) количества букв
К сообщению приложен файл: -1-2-1.xlsx(8.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно? Людей может быть не обязательно до 10 человек? Может быть и больше?
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter
Код
=СУММ(ЕСЛИОШИБКА(--ПСТР(C4;ПОИСК("-";C4;СТРОКА($1:$99))+1;ПОИСК(",";C4&",";СТРОКА($1:$99))-ПОИСК("-";C4;СТРОКА($1:$99))-1);))/ПОИСК("-";C4)

Если длина строки >99 символов, то 99 замените на 256
Для произвольного (но одинакового) количества букв

Автор - _Boroda_
Дата добавления - 01.12.2017 в 12:02
sboy Дата: Пятница, 01.12.2017, 12:02 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2020
Репутация: 578 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
еще вариант, массивная
Код
=СУММ(ЕСЛИОШИБКА(ПСТР(C4;СТРОКА($A$2:$A$100);1)*(ПСТР(C4;СТРОКА($A$1:$A$99);1)="-");))
К сообщению приложен файл: 5134902.xlsx(8.4 Kb)
 
Ответить
СообщениеДобрый день.
еще вариант, массивная
Код
=СУММ(ЕСЛИОШИБКА(ПСТР(C4;СТРОКА($A$2:$A$100);1)*(ПСТР(C4;СТРОКА($A$1:$A$99);1)="-");))

Автор - sboy
Дата добавления - 01.12.2017 в 12:02
sboy Дата: Пятница, 01.12.2017, 12:11 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2020
Репутация: 578 ±
Замечаний: 0% ±

Excel 2010
еще вариант для не более 10 профессий (если больше продолжить ряд в массиве констант) массивная
Код
=СУММ(ЕСЛИОШИБКА(--ПСТР(C4;{6;13;20;27;34;41;48;55;62;69};1);))
 
Ответить
Сообщениееще вариант для не более 10 профессий (если больше продолжить ряд в массиве констант) массивная
Код
=СУММ(ЕСЛИОШИБКА(--ПСТР(C4;{6;13;20;27;34;41;48;55;62;69};1);))

Автор - sboy
Дата добавления - 01.12.2017 в 12:11
vikttur Дата: Пятница, 01.12.2017, 12:17 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2707
Репутация: 477 ±
Замечаний: 0% ±

Немассивная, если числа <10
Код
=СУММ((ДЛСТР(C4)-ДЛСТР(ПОДСТАВИТЬ(C4;-{1;2;3;4;5;6;7;8;9};)))*{1;2;3;4;5;6;7;8;9})/2

Для чисел от 0 до 99 массивная:
Код
=СУММ(ЕСЛИ(ПСТР(C4;СТРОКА(1:99);1)="-";-ПСТР(C4;СТРОКА(1:99);3)))


Сообщение отредактировал vikttur - Пятница, 01.12.2017, 12:56
 
Ответить
СообщениеНемассивная, если числа <10
Код
=СУММ((ДЛСТР(C4)-ДЛСТР(ПОДСТАВИТЬ(C4;-{1;2;3;4;5;6;7;8;9};)))*{1;2;3;4;5;6;7;8;9})/2

Для чисел от 0 до 99 массивная:
Код
=СУММ(ЕСЛИ(ПСТР(C4;СТРОКА(1:99);1)="-";-ПСТР(C4;СТРОКА(1:99);3)))

Автор - vikttur
Дата добавления - 01.12.2017 в 12:17
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Определить количество человек из стринговой строки (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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