Склонение слова "день" в зависимости от количества
vitos88
Дата: Вторник, 01.10.2019, 09:14 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация:
5
±
Замечаний:
0% ±
Добрый день! Написал формулу, склоняющую слово "день" в зависимости от их количества:Код
=ЕСЛИ(И(A1>100;ОСТАТ(A1;100)>10;ОСТАТ(A1;100)<21);"дней";ЕСЛИ(ОСТАТ(A1;10)=0;"дней";ЕСЛИ(ОСТАТ(A1;10)>4;"дней";ЕСЛИ(И(A1>9;A1<15);"дней";ЕСЛИ(ОСТАТ(A1;10)=1;"день";"дня")))))
Знаю, что есть варианты намного изящней и короче. Кто хочет поразмять мозги?
Добрый день! Написал формулу, склоняющую слово "день" в зависимости от их количества:Код
=ЕСЛИ(И(A1>100;ОСТАТ(A1;100)>10;ОСТАТ(A1;100)<21);"дней";ЕСЛИ(ОСТАТ(A1;10)=0;"дней";ЕСЛИ(ОСТАТ(A1;10)>4;"дней";ЕСЛИ(И(A1>9;A1<15);"дней";ЕСЛИ(ОСТАТ(A1;10)=1;"день";"дня")))))
Знаю, что есть варианты намного изящней и короче. Кто хочет поразмять мозги? vitos88
Ответить
Сообщение Добрый день! Написал формулу, склоняющую слово "день" в зависимости от их количества:Код
=ЕСЛИ(И(A1>100;ОСТАТ(A1;100)>10;ОСТАТ(A1;100)<21);"дней";ЕСЛИ(ОСТАТ(A1;10)=0;"дней";ЕСЛИ(ОСТАТ(A1;10)>4;"дней";ЕСЛИ(И(A1>9;A1<15);"дней";ЕСЛИ(ОСТАТ(A1;10)=1;"день";"дня")))))
Знаю, что есть варианты намного изящней и короче. Кто хочет поразмять мозги? Автор - vitos88 Дата добавления - 01.10.2019 в 09:14
bmv98rus
Дата: Вторник, 01.10.2019, 09:40 |
Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4056
Репутация:
763
±
Замечаний:
0% ±
Excel 2013/2016
ну напримерКод
=INDEX({"дней";"день";"дня"};IF(AND(MOD(A1;100)>4;mod(A1;100)<21);1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1})))
Код
=INDEX({"дней";"день";"дня"};IF(ABS(MOD(A1;100)-10)<5;1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1})))
или на тех же принципахКод
=CHOOSE(IF(AND(MOD(A1;100)>4;MOD(A1;100)<21);1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1}));"дней";"день";"дня")
Код
=CHOOSE(IF(ABS(MOD(A1;100)-10)<5;1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1}));"дней";"день";"дня")
ну напримерКод
=INDEX({"дней";"день";"дня"};IF(AND(MOD(A1;100)>4;mod(A1;100)<21);1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1})))
Код
=INDEX({"дней";"день";"дня"};IF(ABS(MOD(A1;100)-10)<5;1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1})))
или на тех же принципахКод
=CHOOSE(IF(AND(MOD(A1;100)>4;MOD(A1;100)<21);1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1}));"дней";"день";"дня")
Код
=CHOOSE(IF(ABS(MOD(A1;100)-10)<5;1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1}));"дней";"день";"дня")
bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Вторник, 01.10.2019, 11:23
Ответить
Сообщение ну напримерКод
=INDEX({"дней";"день";"дня"};IF(AND(MOD(A1;100)>4;mod(A1;100)<21);1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1})))
Код
=INDEX({"дней";"день";"дня"};IF(ABS(MOD(A1;100)-10)<5;1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1})))
или на тех же принципахКод
=CHOOSE(IF(AND(MOD(A1;100)>4;MOD(A1;100)<21);1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1}));"дней";"день";"дня")
Код
=CHOOSE(IF(ABS(MOD(A1;100)-10)<5;1;LOOKUP(--RIGHT(A1;1);{0;1;2;5};{1;2;3;1}));"дней";"день";"дня")
Автор - bmv98rus Дата добавления - 01.10.2019 в 09:40
vitos88
Дата: Вторник, 01.10.2019, 10:20 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация:
5
±
Замечаний:
0% ±
bmv98rus , ни одна из ваших формул не подходит под случаи 11, 12, 13 и 14 после каждой сотни
bmv98rus , ни одна из ваших формул не подходит под случаи 11, 12, 13 и 14 после каждой сотни vitos88
Ответить
Сообщение bmv98rus , ни одна из ваших формул не подходит под случаи 11, 12, 13 и 14 после каждой сотни Автор - vitos88 Дата добавления - 01.10.2019 в 10:20
bmv98rus
Дата: Вторник, 01.10.2019, 10:41 |
Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4056
Репутация:
763
±
Замечаний:
0% ±
Excel 2013/2016
ну так и правятся все одним махом просто.
ну так и правятся все одним махом просто. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение ну так и правятся все одним махом просто. Автор - bmv98rus Дата добавления - 01.10.2019 в 10:41
DrMini
Дата: Вторник, 01.10.2019, 10:45 |
Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1309
Репутация:
133
±
Замечаний:
0% ±
Excel LTSC 2021 RUS
Мне пару месяцев назад нужно было то же самое. Нашёл где то на просторах Internet`a. Помню только автор ВЛАДИМИРКод
=ВЫБОР(МАКС(--(--(ПРАВСИМВ(A1;2))={11;12;13;14}))+МАКС(--(--(ПРАВСИМВ(A1;1))={1;21;31:2;3;4})*{1:3})+1;"лет";"год";"лет";"года";"лет")
Может подойдёт?
Мне пару месяцев назад нужно было то же самое. Нашёл где то на просторах Internet`a. Помню только автор ВЛАДИМИРКод
=ВЫБОР(МАКС(--(--(ПРАВСИМВ(A1;2))={11;12;13;14}))+МАКС(--(--(ПРАВСИМВ(A1;1))={1;21;31:2;3;4})*{1:3})+1;"лет";"год";"лет";"года";"лет")
Может подойдёт? DrMini
Сообщение отредактировал DrMini - Вторник, 01.10.2019, 10:46
Ответить
Сообщение Мне пару месяцев назад нужно было то же самое. Нашёл где то на просторах Internet`a. Помню только автор ВЛАДИМИРКод
=ВЫБОР(МАКС(--(--(ПРАВСИМВ(A1;2))={11;12;13;14}))+МАКС(--(--(ПРАВСИМВ(A1;1))={1;21;31:2;3;4})*{1:3})+1;"лет";"год";"лет";"года";"лет")
Может подойдёт? Автор - DrMini Дата добавления - 01.10.2019 в 10:45
vitos88
Дата: Вторник, 01.10.2019, 11:18 |
Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация:
5
±
Замечаний:
0% ±
bmv98rus , теперь формулы (конкретно у меня, пользуюсь офисом 2013) вообще не работают.DrMini , а вот ваша формула работает отлично, ошибок пока не выявил.
bmv98rus , теперь формулы (конкретно у меня, пользуюсь офисом 2013) вообще не работают.DrMini , а вот ваша формула работает отлично, ошибок пока не выявил.vitos88
Сообщение отредактировал vitos88 - Вторник, 01.10.2019, 11:18
Ответить
Сообщение bmv98rus , теперь формулы (конкретно у меня, пользуюсь офисом 2013) вообще не работают.DrMini , а вот ваша формула работает отлично, ошибок пока не выявил.Автор - vitos88 Дата добавления - 01.10.2019 в 11:18
bmv98rus
Дата: Вторник, 01.10.2019, 11:22 |
Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4056
Репутация:
763
±
Замечаний:
0% ±
Excel 2013/2016
плохо пользуетесь значит. У меня тоже 2013, просто MOD писал прямо в сообщении и прописными и он не перевелся, а вы вставляя не перевели в ОСТАТ.
плохо пользуетесь значит. У меня тоже 2013, просто MOD писал прямо в сообщении и прописными и он не перевелся, а вы вставляя не перевели в ОСТАТ. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Вторник, 01.10.2019, 11:24
Ответить
Сообщение плохо пользуетесь значит. У меня тоже 2013, просто MOD писал прямо в сообщении и прописными и он не перевелся, а вы вставляя не перевели в ОСТАТ. Автор - bmv98rus Дата добавления - 01.10.2019 в 11:22
DrMini
Дата: Вторник, 01.10.2019, 11:26 |
Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1309
Репутация:
133
±
Замечаний:
0% ±
Excel LTSC 2021 RUS
Добавка для удаления ошибки при пустом значении:Код
=ЕСЛИОШИБКА(ВЫБОР(МАКС(--(--(ПРАВСИМВ(A1;2))={11;12;13;14}))+МАКС(--(--(ПРАВСИМВ(A1;1))={1;21;31:2;3;4})*{1:3})+1;"лет";"год";"лет";"года";"лет");"Любое значение")
Добавка для удаления ошибки при пустом значении:Код
=ЕСЛИОШИБКА(ВЫБОР(МАКС(--(--(ПРАВСИМВ(A1;2))={11;12;13;14}))+МАКС(--(--(ПРАВСИМВ(A1;1))={1;21;31:2;3;4})*{1:3})+1;"лет";"год";"лет";"года";"лет");"Любое значение")
DrMini
К сообщению приложен файл:
___.xlsx
(8.1 Kb)
Ответить
Сообщение Добавка для удаления ошибки при пустом значении:Код
=ЕСЛИОШИБКА(ВЫБОР(МАКС(--(--(ПРАВСИМВ(A1;2))={11;12;13;14}))+МАКС(--(--(ПРАВСИМВ(A1;1))={1;21;31:2;3;4})*{1:3})+1;"лет";"год";"лет";"года";"лет");"Любое значение")
Автор - DrMini Дата добавления - 01.10.2019 в 11:26
vitos88
Дата: Вторник, 01.10.2019, 11:56 |
Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация:
5
±
Замечаний:
0% ±
[offtop] да не говорите! с логикой у меня проблемы, это известный факт
[offtop] да не говорите! с логикой у меня проблемы, это известный факт vitos88
Ответить
Сообщение [offtop] да не говорите! с логикой у меня проблемы, это известный факт Автор - vitos88 Дата добавления - 01.10.2019 в 11:56
Светлый
Дата: Вторник, 01.10.2019, 14:58 |
Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1788
Репутация:
495
±
Замечаний:
0% ±
Excel 2013, 2016
И я свои пять копеек с защитой от пустой выложу:Код
=ПРОСМОТР((ЛЕВБ(ПРАВБ(0&A1;2))<>"1")*ПРАВБ(0&A1);{0;1;2;5};{"дней";"день";"дня";"дней"})
*А такая даже тексты будет игнорировать:Код
=ПРОСМОТР((ЛЕВБ(ПРАВБ(0&A1;2))<>"1")*ПРАВБ(Ч(A1));{0;1;2;5};{"дней";"день";"дня";"дней"})
И я свои пять копеек с защитой от пустой выложу:Код
=ПРОСМОТР((ЛЕВБ(ПРАВБ(0&A1;2))<>"1")*ПРАВБ(0&A1);{0;1;2;5};{"дней";"день";"дня";"дней"})
*А такая даже тексты будет игнорировать:Код
=ПРОСМОТР((ЛЕВБ(ПРАВБ(0&A1;2))<>"1")*ПРАВБ(Ч(A1));{0;1;2;5};{"дней";"день";"дня";"дней"})
Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Вторник, 01.10.2019, 15:33
Ответить
Сообщение И я свои пять копеек с защитой от пустой выложу:Код
=ПРОСМОТР((ЛЕВБ(ПРАВБ(0&A1;2))<>"1")*ПРАВБ(0&A1);{0;1;2;5};{"дней";"день";"дня";"дней"})
*А такая даже тексты будет игнорировать:Код
=ПРОСМОТР((ЛЕВБ(ПРАВБ(0&A1;2))<>"1")*ПРАВБ(Ч(A1));{0;1;2;5};{"дней";"день";"дня";"дней"})
Автор - Светлый Дата добавления - 01.10.2019 в 14:58
vitos88
Дата: Вторник, 01.10.2019, 16:03 |
Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация:
5
±
Замечаний:
0% ±
Светлый , пожалуй, у вас самая изящная формула!
Светлый , пожалуй, у вас самая изящная формула! vitos88
Ответить
Сообщение Светлый , пожалуй, у вас самая изящная формула! Автор - vitos88 Дата добавления - 01.10.2019 в 16:03
bmv98rus
Дата: Вторник, 01.10.2019, 17:09 |
Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4056
Репутация:
763
±
Замечаний:
0% ±
Excel 2013/2016
Не люблю повторять текст, но получается короче, паразитирую на №10Код
=LOOKUP((ABS(MOD(A1;100)-10)>5)*MOD(A1;10);{0;1;2;5};{"дней";"день";"дня";"дней"})
Не люблю повторять текст, но получается короче, паразитирую на №10Код
=LOOKUP((ABS(MOD(A1;100)-10)>5)*MOD(A1;10);{0;1;2;5};{"дней";"день";"дня";"дней"})
bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Вторник, 01.10.2019, 17:12
Ответить
Сообщение Не люблю повторять текст, но получается короче, паразитирую на №10Код
=LOOKUP((ABS(MOD(A1;100)-10)>5)*MOD(A1;10);{0;1;2;5};{"дней";"день";"дня";"дней"})
Автор - bmv98rus Дата добавления - 01.10.2019 в 17:09
MCH
Дата: Вторник, 01.10.2019, 22:39 |
Сообщение № 13
Группа: Админы
Ранг: Старожил
Сообщений: 2002
Репутация:
751
±
Замечаний:
±
Кто хочет поразмять мозги?
Код
=ВПР(ОСТАТ(МАКС(ОСТАТ(A1-11;100);9);10);{0;"день":1;"дня":4;"дней"};2)
Код
="д"&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(A1-11;100);9);10);"[<1]ень;[<4]ня;ней")
http://www.excelworld.ru/forum/2-9059-1
Кто хочет поразмять мозги?
Код
=ВПР(ОСТАТ(МАКС(ОСТАТ(A1-11;100);9);10);{0;"день":1;"дня":4;"дней"};2)
Код
="д"&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(A1-11;100);9);10);"[<1]ень;[<4]ня;ней")
http://www.excelworld.ru/forum/2-9059-1 MCH
Ответить
Сообщение Кто хочет поразмять мозги?
Код
=ВПР(ОСТАТ(МАКС(ОСТАТ(A1-11;100);9);10);{0;"день":1;"дня":4;"дней"};2)
Код
="д"&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(A1-11;100);9);10);"[<1]ень;[<4]ня;ней")
http://www.excelworld.ru/forum/2-9059-1 Автор - MCH Дата добавления - 01.10.2019 в 22:39
bmv98rus
Дата: Вторник, 01.10.2019, 23:04 |
Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4056
Репутация:
763
±
Замечаний:
0% ±
Excel 2013/2016
MOD(MAX(MOD(A1-11,100),9),10){
Отличный вариант. что-то подобное делал с кодами символов, но тут забыл напрочь. +
MOD(MAX(MOD(A1-11,100),9),10){
Отличный вариант. что-то подобное делал с кодами символов, но тут забыл напрочь. +bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение MOD(MAX(MOD(A1-11,100),9),10){
Отличный вариант. что-то подобное делал с кодами символов, но тут забыл напрочь. +Автор - bmv98rus Дата добавления - 01.10.2019 в 23:04
Светлый
Дата: Среда, 02.10.2019, 00:12 |
Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1788
Репутация:
495
±
Замечаний:
0% ±
Excel 2013, 2016
MCH , круто! Ещё один из ОСТАТ можно заменить.Код
="д"&ТЕКСТ(ПРАВБ(МАКС(ОСТАТ(A1-11;100);9));"[<1]ень;[<4]ня;ней")
MCH , круто! Ещё один из ОСТАТ можно заменить.Код
="д"&ТЕКСТ(ПРАВБ(МАКС(ОСТАТ(A1-11;100);9));"[<1]ень;[<4]ня;ней")
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение MCH , круто! Ещё один из ОСТАТ можно заменить.Код
="д"&ТЕКСТ(ПРАВБ(МАКС(ОСТАТ(A1-11;100);9));"[<1]ень;[<4]ня;ней")
Автор - Светлый Дата добавления - 02.10.2019 в 00:12
MCH
Дата: Четверг, 03.10.2019, 21:56 |
Сообщение № 16
Группа: Админы
Ранг: Старожил
Сообщений: 2002
Репутация:
751
±
Замечаний:
±
Как всегда, пришел Светлый и все улучшил
Как всегда, пришел Светлый и все улучшил MCH
Ответить
Сообщение Как всегда, пришел Светлый и все улучшил Автор - MCH Дата добавления - 03.10.2019 в 21:56
bmv98rus
Дата: Четверг, 03.10.2019, 22:14 |
Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4056
Репутация:
763
±
Замечаний:
0% ±
Excel 2013/2016
Укоротил не всегда = улучшил. Краткость не всегда скорость и легкость вычислений.
Укоротил не всегда = улучшил. Краткость не всегда скорость и легкость вычислений.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение Укоротил не всегда = улучшил. Краткость не всегда скорость и легкость вычислений.Автор - bmv98rus Дата добавления - 03.10.2019 в 22:14
MCH
Дата: Пятница, 04.10.2019, 12:48 |
Сообщение № 18
Группа: Админы
Ранг: Старожил
Сообщений: 2002
Репутация:
751
±
Замечаний:
±
Укоротил не всегда = улучшил
Разумеется, и я в своих формулах предпочитаю работать с числами, а не с текстом в подобных ситуациях, т.к. операции с текстом, как правило, медленнее операций с числами. Но было предложено:Знаю, что есть варианты намного изящней и короче. Кто хочет поразмять мозги?
Просили более короткую формулу, которая не обязательно эффективнее.
Укоротил не всегда = улучшил
Разумеется, и я в своих формулах предпочитаю работать с числами, а не с текстом в подобных ситуациях, т.к. операции с текстом, как правило, медленнее операций с числами. Но было предложено:Знаю, что есть варианты намного изящней и короче. Кто хочет поразмять мозги?
Просили более короткую формулу, которая не обязательно эффективнее.MCH
Ответить
Сообщение Укоротил не всегда = улучшил
Разумеется, и я в своих формулах предпочитаю работать с числами, а не с текстом в подобных ситуациях, т.к. операции с текстом, как правило, медленнее операций с числами. Но было предложено:Знаю, что есть варианты намного изящней и короче. Кто хочет поразмять мозги?
Просили более короткую формулу, которая не обязательно эффективнее.Автор - MCH Дата добавления - 04.10.2019 в 12:48
bmv98rus
Дата: Пятница, 04.10.2019, 12:58 |
Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4056
Репутация:
763
±
Замечаний:
0% ±
Excel 2013/2016
MCH , Тезка, то что изящно это A1-11 и [<1]ень;[<4]ня;ней , и я и Светлый , это отметили . Ну а в целом, мне кажется мы поняли друг друга по поводу вычислений.
MCH , Тезка, то что изящно это A1-11 и [<1]ень;[<4]ня;ней , и я и Светлый , это отметили . Ну а в целом, мне кажется мы поняли друг друга по поводу вычислений.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение MCH , Тезка, то что изящно это A1-11 и [<1]ень;[<4]ня;ней , и я и Светлый , это отметили . Ну а в целом, мне кажется мы поняли друг друга по поводу вычислений.Автор - bmv98rus Дата добавления - 04.10.2019 в 12:58
gendozzz
Дата: Воскресенье, 19.04.2020, 16:18 |
Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
Excel 2019
Добрый день! У меня похожая ситуация, только мне необходимо склонять числа. По типу, первый столбец заполнен 1, 2, 3 и т.д., а второй заполняется 1-но контактный, 2-х контактный, 3-х контактный и т.д. и так до 50. Прошу помощи в составлении формулы. Попробовал использовать предложенные в этой теме формулы, но что-то у меня ничего не получается.
Добрый день! У меня похожая ситуация, только мне необходимо склонять числа. По типу, первый столбец заполнен 1, 2, 3 и т.д., а второй заполняется 1-но контактный, 2-х контактный, 3-х контактный и т.д. и так до 50. Прошу помощи в составлении формулы. Попробовал использовать предложенные в этой теме формулы, но что-то у меня ничего не получается. gendozzz
Сообщение отредактировал gendozzz - Воскресенье, 19.04.2020, 16:20
Ответить
Сообщение Добрый день! У меня похожая ситуация, только мне необходимо склонять числа. По типу, первый столбец заполнен 1, 2, 3 и т.д., а второй заполняется 1-но контактный, 2-х контактный, 3-х контактный и т.д. и так до 50. Прошу помощи в составлении формулы. Попробовал использовать предложенные в этой теме формулы, но что-то у меня ничего не получается. Автор - gendozzz Дата добавления - 19.04.2020 в 16:18