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

Вход

Регистрация

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

 

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

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


Сообщение отредактировал Юрий_Нд - Пятница, 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
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3437
Репутация: 922 ±
Замечаний: 0% ±

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


"заступлюсь за Юрия" - публичный плевок в душу!
 
Ответить
СообщениеКак-то так видимо:
Код
=СУММ(ЕСЛИОШИБКА(--ПРАВБ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(C4;",";ПОВТОР(" ";99));1+99*(СТРОКА(A1:A10)-1);99));1);0))

Автор - buchlotnik
Дата добавления - 01.12.2017 в 12:01
_Boroda_ Дата: Пятница, 01.12.2017, 12:02 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11852
Репутация: 4911 ±
Замечаний: 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(9Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
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
Группа: Проверенные
Ранг: Старожил
Сообщений: 1174
Репутация: 294 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
еще вариант, массивная
Код
=СУММ(ЕСЛИОШИБКА(ПСТР(C4;СТРОКА($A$2:$A$100);1)*(ПСТР(C4;СТРОКА($A$1:$A$99);1)="-");))
К сообщению приложен файл: 5134902.xlsx(8Kb)
 
Ответить
СообщениеДобрый день.
еще вариант, массивная
Код
=СУММ(ЕСЛИОШИБКА(ПСТР(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
Группа: Проверенные
Ранг: Старожил
Сообщений: 1174
Репутация: 294 ±
Замечаний: 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
Группа: Друзья
Ранг: Старожил
Сообщений: 2557
Репутация: 460 ±
Замечаний: 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 из 11
Поиск:

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