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

Вход

Регистрация

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

 

= Мир MS Excel/Отсортировать по возрасту - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Отсортировать по возрасту
Гость Дата: Воскресенье, 04.09.2011, 22:20 | Сообщение № 1
Группа: Гости
Здравствуйте, как написать формулу для сортировки по возрасту, чтобы оставить только тех, кто старше 30 и не старше 45
Возраст
25
52
49
21
49
23
34
28
40
44
44
43
43
34
49
38
36
47
31
34
46
45
46
20
39
 
Ответить
СообщениеЗдравствуйте, как написать формулу для сортировки по возрасту, чтобы оставить только тех, кто старше 30 и не старше 45
Возраст
25
52
49
21
49
23
34
28
40
44
44
43
43
34
49
38
36
47
31
34
46
45
46
20
39

Автор - Гость
Дата добавления - 04.09.2011 в 22:20
0mega Дата: Воскресенье, 04.09.2011, 23:10 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Гость, здравствуйте
надо в соседнем столбце написать формулу:
+--И(A1>30;A1<=45)
Потом поймать ее (формулу ) за правый нижний хвостик и опустить вниз.
Единичками будут отмечены нужные числа

25 _____ +--И(A1>30;A1<=45)
52______ 0
49______ 0
21______ 0
49______ 0
23______ 0
34______ 1
28______ 0
40______ 1
44______ 1
44______ 1
43______ 1
43______ 1
34______ 1
49______ 0
38______ 1
36______ 1
47______ 0
31______ 1
34______ 1
46______ 0
45______ 1
46______ 0
20______ 0
39______ 1

Вместо единичек можно записать настоящее значение.
Для этого воспользуйтесь такой формулой:
=(A1>30)*(A1<=45)*A1
Все ненужные значения будут иметь "0" , а то что надо продублируется в соседнем столбике

25 _____ =(A1>30)*(A1<=45)*A1
52______ 0
49______ 0
21______ 0
49______ 0
23______ 0
34______ 34
28______ 0
40______ 40
44______ 44
44______ 44
43______ 43
43______ 43
34______ 34
49______ 0
38______ 38
36______ 36
47______ 0
31______ 31
34______ 34
46______ 0
45______ 45
46______ 0
20______ 0
39______ 39

A если вам нули не нужны, тогда воспользуйтесь такой формулой :
=ВЫБОР((A1>30)*(A1<=45)+1;"";A1)
Ответ получится такой же только нули будут отсутствовать


Сообщение отредактировал 0mega - Воскресенье, 04.09.2011, 23:27
 
Ответить
СообщениеГость, здравствуйте
надо в соседнем столбце написать формулу:
+--И(A1>30;A1<=45)
Потом поймать ее (формулу ) за правый нижний хвостик и опустить вниз.
Единичками будут отмечены нужные числа

25 _____ +--И(A1>30;A1<=45)
52______ 0
49______ 0
21______ 0
49______ 0
23______ 0
34______ 1
28______ 0
40______ 1
44______ 1
44______ 1
43______ 1
43______ 1
34______ 1
49______ 0
38______ 1
36______ 1
47______ 0
31______ 1
34______ 1
46______ 0
45______ 1
46______ 0
20______ 0
39______ 1

Вместо единичек можно записать настоящее значение.
Для этого воспользуйтесь такой формулой:
=(A1>30)*(A1<=45)*A1
Все ненужные значения будут иметь "0" , а то что надо продублируется в соседнем столбике

25 _____ =(A1>30)*(A1<=45)*A1
52______ 0
49______ 0
21______ 0
49______ 0
23______ 0
34______ 34
28______ 0
40______ 40
44______ 44
44______ 44
43______ 43
43______ 43
34______ 34
49______ 0
38______ 38
36______ 36
47______ 0
31______ 31
34______ 34
46______ 0
45______ 45
46______ 0
20______ 0
39______ 39

A если вам нули не нужны, тогда воспользуйтесь такой формулой :
=ВЫБОР((A1>30)*(A1<=45)+1;"";A1)
Ответ получится такой же только нули будут отсутствовать

Автор - 0mega
Дата добавления - 04.09.2011 в 23:10
Гость Дата: Воскресенье, 04.09.2011, 23:18 | Сообщение № 3
Группа: Гости
Quote (0mega)
надо в соседнем столбце написать формулу:
=(A1>30)*(A1<=45)*A1

Спасибо!А как сделать, чтоб результат был без нулей и по возрастанию?
 
Ответить
Сообщение
Quote (0mega)
надо в соседнем столбце написать формулу:
=(A1>30)*(A1<=45)*A1

Спасибо!А как сделать, чтоб результат был без нулей и по возрастанию?

Автор - Гость
Дата добавления - 04.09.2011 в 23:18
Формуляр Дата: Воскресенье, 04.09.2011, 23:40 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Можно, например, так:
= INT( LARGE( (A1:A25 > 30)*(A1:A25 <=45)*((A1:A25)+ROW(A1:A25)/100), ROW(A1:A25) ) )

Только по убыванию. smile
По возрастанию - малость сложнее ...
К сообщению приложен файл: SortAge.xls (16.0 Kb)


Excel 2003 EN, 2013 EN

Сообщение отредактировал Формуляр - Воскресенье, 04.09.2011, 23:42
 
Ответить
СообщениеМожно, например, так:
= INT( LARGE( (A1:A25 > 30)*(A1:A25 <=45)*((A1:A25)+ROW(A1:A25)/100), ROW(A1:A25) ) )

Только по убыванию. smile
По возрастанию - малость сложнее ...

Автор - Формуляр
Дата добавления - 04.09.2011 в 23:40
0mega Дата: Воскресенье, 04.09.2011, 23:41 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Quote (Гость)
как сделать, чтоб результат был без нулей...

вместо этой формулы =(A1>30)*(A1<=45)*A1 надо поставить эту =ВЫБОР((A1>30)*(A1<=45)+1;"";A1)

Quote (Гость)
... и по возрастанию?

надо выделить свой столбец и топнуть мышкой по значку "AZ" или "АЯ"
и тогда нужные цифры сами станут на свое место

К сообщению приложен файл: 8595754.png (31.7 Kb)


Сообщение отредактировал 0mega - Воскресенье, 04.09.2011, 23:42
 
Ответить
Сообщение
Quote (Гость)
как сделать, чтоб результат был без нулей...

вместо этой формулы =(A1>30)*(A1<=45)*A1 надо поставить эту =ВЫБОР((A1>30)*(A1<=45)+1;"";A1)

Quote (Гость)
... и по возрастанию?

надо выделить свой столбец и топнуть мышкой по значку "AZ" или "АЯ"
и тогда нужные цифры сами станут на свое место


Автор - 0mega
Дата добавления - 04.09.2011 в 23:41
0mega Дата: Воскресенье, 04.09.2011, 23:56 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Формуляр, здравствуйте
С вашего разрешения внесу ма-а-аленькую поправочку.
Quote (Формуляр)
Можно, например, так:
= INT( LARGE( (A1:A25 > 30)*(A1:A25 <=45)*((A1:A25)+ROW(A1:A25)/100), ROW(A1:A25) ) )

На русском языке это будет иметь такой вид :
=ЦЕЛОЕ(НАИБОЛЬШИЙ((A1:A25>30)*(A1:A25<=45)*((A1:A25)+СТРОКА(A1:A25)/100);СТРОКА(A1:A25)))

а ввод формулы надо осуществлять сразу тремя клавишами : сtrl+shift+enter
 
Ответить
СообщениеФормуляр, здравствуйте
С вашего разрешения внесу ма-а-аленькую поправочку.
Quote (Формуляр)
Можно, например, так:
= INT( LARGE( (A1:A25 > 30)*(A1:A25 <=45)*((A1:A25)+ROW(A1:A25)/100), ROW(A1:A25) ) )

На русском языке это будет иметь такой вид :
=ЦЕЛОЕ(НАИБОЛЬШИЙ((A1:A25>30)*(A1:A25<=45)*((A1:A25)+СТРОКА(A1:A25)/100);СТРОКА(A1:A25)))

а ввод формулы надо осуществлять сразу тремя клавишами : сtrl+shift+enter

Автор - 0mega
Дата добавления - 04.09.2011 в 23:56
Формуляр Дата: Понедельник, 05.09.2011, 00:00 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
0mega,
спасибо - как раз собрался добавить фигурные скобки.
А локализованная формула - в файле.

Вот ещё вариант без массива:
Code
= SMALL($A$1:$A$25, IF( ROW() <=  COUNTIF($A$1:$A$25, "<= 45") -  COUNTIF($A$1:$A$25, "<= 30"), COUNTIF($A$1:$A$25, "<= 30") + ROW(), 0 ) )
К сообщению приложен файл: 3624156.xls (16.5 Kb)


Excel 2003 EN, 2013 EN
 
Ответить
Сообщение0mega,
спасибо - как раз собрался добавить фигурные скобки.
А локализованная формула - в файле.

Вот ещё вариант без массива:
Code
= SMALL($A$1:$A$25, IF( ROW() <=  COUNTIF($A$1:$A$25, "<= 45") -  COUNTIF($A$1:$A$25, "<= 30"), COUNTIF($A$1:$A$25, "<= 30") + ROW(), 0 ) )

Автор - Формуляр
Дата добавления - 05.09.2011 в 00:00
Гость Дата: Понедельник, 05.09.2011, 00:01 | Сообщение № 8
Группа: Гости
Quote (0mega)
надо выделить свой столбец и топнуть мышкой по значку "AZ" или "АЯ"

хитрый выход, но хочется чтобы результирующий столбец с самой верхней ячейки начинался, как предложил Формуляр, которому тоже спасибо, но по возрастанию и без нулей...и чтоб не так сложно wacko
 
Ответить
Сообщение
Quote (0mega)
надо выделить свой столбец и топнуть мышкой по значку "AZ" или "АЯ"

хитрый выход, но хочется чтобы результирующий столбец с самой верхней ячейки начинался, как предложил Формуляр, которому тоже спасибо, но по возрастанию и без нулей...и чтоб не так сложно wacko

Автор - Гость
Дата добавления - 05.09.2011 в 00:01
Гость Дата: Понедельник, 05.09.2011, 00:04 | Сообщение № 9
Группа: Гости
Quote (Формуляр)
Вот ещё вариант без массива:
а как избавиться от #ЧИСЛО!
в конце?
 
Ответить
Сообщение
Quote (Формуляр)
Вот ещё вариант без массива:
а как избавиться от #ЧИСЛО!
в конце?

Автор - Гость
Дата добавления - 05.09.2011 в 00:04
0mega Дата: Понедельник, 05.09.2011, 00:06 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Quote (Гость)
по возрастанию и без нулей...и чтоб не так сложно

одну минутку... мне надо включить генератор серого вещества
 
Ответить
Сообщение
Quote (Гость)
по возрастанию и без нулей...и чтоб не так сложно

одну минутку... мне надо включить генератор серого вещества

Автор - 0mega
Дата добавления - 05.09.2011 в 00:06
Формуляр Дата: Понедельник, 05.09.2011, 00:09 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Гость,
Quote (Гость)
а как избавиться от #ЧИСЛО! в конце?
удалить содержимое ячеек. smile

Или что вы хотите, чтоб там было?


Excel 2003 EN, 2013 EN

Сообщение отредактировал Формуляр - Понедельник, 05.09.2011, 00:10
 
Ответить
СообщениеГость,
Quote (Гость)
а как избавиться от #ЧИСЛО! в конце?
удалить содержимое ячеек. smile

Или что вы хотите, чтоб там было?

Автор - Формуляр
Дата добавления - 05.09.2011 в 00:09
Гость Дата: Понедельник, 05.09.2011, 00:13 | Сообщение № 12
Группа: Гости
Quote (Формуляр)
Или что вы хотите, чтоб там было?
В том то и дело, что я хочу, чтоб там небыло ничего (в последних ячейках)
 
Ответить
Сообщение
Quote (Формуляр)
Или что вы хотите, чтоб там было?
В том то и дело, что я хочу, чтоб там небыло ничего (в последних ячейках)

Автор - Гость
Дата добавления - 05.09.2011 в 00:13
Формуляр Дата: Понедельник, 05.09.2011, 00:16 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Quote (Формуляр)
удалить содержимое ячеек.

Тогда, это - подходящий вариант.


Excel 2003 EN, 2013 EN

Сообщение отредактировал Формуляр - Понедельник, 05.09.2011, 00:16
 
Ответить
Сообщение
Quote (Формуляр)
удалить содержимое ячеек.

Тогда, это - подходящий вариант.

Автор - Формуляр
Дата добавления - 05.09.2011 в 00:16
Гость Дата: Понедельник, 05.09.2011, 00:20 | Сообщение № 14
Группа: Гости
А можно спросить: из-за чего ексель выдаёт #ЧИСЛО!
 
Ответить
СообщениеА можно спросить: из-за чего ексель выдаёт #ЧИСЛО!

Автор - Гость
Дата добавления - 05.09.2011 в 00:20
0mega Дата: Понедельник, 05.09.2011, 00:32 | Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

воспользуюсь лаврами Формуляр-а и дополню его формулу:

=ЕСЛИ(ЕОШИБКА( НАИМЕНЬШИЙ($A$1:$A$25; ЕСЛИ( СТРОКА() <= СЧЁТЕСЛИ($A$1:$A$25; "<= 45") - СЧЁТЕСЛИ($A$1:$A$25; "<= 30"); СЧЁТЕСЛИ($A$1:$A$25; "<= 30") + СТРОКА(); 0 ) ));""; НАИМЕНЬШИЙ($A$1:$A$25; ЕСЛИ(СТРОКА() <= СЧЁТЕСЛИ($A$1:$A$25; "<= 45") - СЧЁТЕСЛИ($A$1:$A$25;"<= 30"); СЧЁТЕСЛИ($A$1:$A$25; "<= 30")+СТРОКА(); 0)))
 
Ответить
Сообщениевоспользуюсь лаврами Формуляр-а и дополню его формулу:

=ЕСЛИ(ЕОШИБКА( НАИМЕНЬШИЙ($A$1:$A$25; ЕСЛИ( СТРОКА() <= СЧЁТЕСЛИ($A$1:$A$25; "<= 45") - СЧЁТЕСЛИ($A$1:$A$25; "<= 30"); СЧЁТЕСЛИ($A$1:$A$25; "<= 30") + СТРОКА(); 0 ) ));""; НАИМЕНЬШИЙ($A$1:$A$25; ЕСЛИ(СТРОКА() <= СЧЁТЕСЛИ($A$1:$A$25; "<= 45") - СЧЁТЕСЛИ($A$1:$A$25;"<= 30"); СЧЁТЕСЛИ($A$1:$A$25; "<= 30")+СТРОКА(); 0)))

Автор - 0mega
Дата добавления - 05.09.2011 в 00:32
Гость Дата: Понедельник, 05.09.2011, 00:47 | Сообщение № 16
Группа: Гости
Quote (0mega)
и дополню его формулу:
Вот это класс!!
теперь буду разбирать wacko
Вот сколько нужно заниматься экселем, чтоб такие формулы соображать!!?
 
Ответить
Сообщение
Quote (0mega)
и дополню его формулу:
Вот это класс!!
теперь буду разбирать wacko
Вот сколько нужно заниматься экселем, чтоб такие формулы соображать!!?

Автор - Гость
Дата добавления - 05.09.2011 в 00:47
0mega Дата: Понедельник, 05.09.2011, 00:47 | Сообщение № 17
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Quote (Гость)
А можно спросить: из-за чего ексель выдаёт #ЧИСЛО!

Еxcel ругается потому что его заставили обрабатывать числа, которые не входят в указанные ограничения.
Поэтому использование этого числа вызывает ошибку .
Именно наличие ошибки я и добавил в формулу, которую написал Формуляр
 
Ответить
Сообщение
Quote (Гость)
А можно спросить: из-за чего ексель выдаёт #ЧИСЛО!

Еxcel ругается потому что его заставили обрабатывать числа, которые не входят в указанные ограничения.
Поэтому использование этого числа вызывает ошибку .
Именно наличие ошибки я и добавил в формулу, которую написал Формуляр

Автор - 0mega
Дата добавления - 05.09.2011 в 00:47
0mega Дата: Понедельник, 05.09.2011, 00:59 | Сообщение № 18
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Гость, небольшое замечание на посошок.
Уж если вы не желаете регистрироваться, то хотя бы вместо Гость, напишите Федя
А то как-то не по масти обращаться в никуда .
А если это не последний ваш вопрос и предполагается дальнейшее посещение форума, тогда есть смысл пройти регистрацию.
Зарегистрированные пользователи имеют возможность загружать свои файлы и картинки.
И тогда вам не прийдется составлять таблицу вручную как в стартовом топике surprised
 
Ответить
СообщениеГость, небольшое замечание на посошок.
Уж если вы не желаете регистрироваться, то хотя бы вместо Гость, напишите Федя
А то как-то не по масти обращаться в никуда .
А если это не последний ваш вопрос и предполагается дальнейшее посещение форума, тогда есть смысл пройти регистрацию.
Зарегистрированные пользователи имеют возможность загружать свои файлы и картинки.
И тогда вам не прийдется составлять таблицу вручную как в стартовом топике surprised

Автор - 0mega
Дата добавления - 05.09.2011 в 00:59
Формуляр Дата: Понедельник, 05.09.2011, 11:07 | Сообщение № 19
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Упс - в 1ой формуле я что-то намудрил лишнего:
Code
{= SMALL( IF((A1:A25 > 30)*(A1:A25 <=45), A1:A25, ""), ROW(A1:A25) )}

К сообщению приложен файл: 3507780.xls (16.0 Kb)


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеУпс - в 1ой формуле я что-то намудрил лишнего:
Code
{= SMALL( IF((A1:A25 > 30)*(A1:A25 <=45), A1:A25, ""), ROW(A1:A25) )}


Автор - Формуляр
Дата добавления - 05.09.2011 в 11:07
Формуляр Дата: Понедельник, 05.09.2011, 11:26 | Сообщение № 20
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Quote (Гость)
Quote (Формуляр)
Или что вы хотите, чтоб там было?
В том то и дело, что я хочу, чтоб там небыло ничего (в последних ячейках)

Когда там формула, там не может ничего не быть. В худшем случае - "".
Но если важно, не что там есть, а как оно выглядит - можно использовать условный формат данных:
Code
[>100]"-";[>0]0;
К сообщению приложен файл: 9429055.xls (16.5 Kb)


Excel 2003 EN, 2013 EN
 
Ответить
Сообщение
Quote (Гость)
Quote (Формуляр)
Или что вы хотите, чтоб там было?
В том то и дело, что я хочу, чтоб там небыло ничего (в последних ячейках)

Когда там формула, там не может ничего не быть. В худшем случае - "".
Но если важно, не что там есть, а как оно выглядит - можно использовать условный формат данных:
Code
[>100]"-";[>0]0;

Автор - Формуляр
Дата добавления - 05.09.2011 в 11:26
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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