Страницы: 1 2 След.
RSS
Неправильная сортировка по дате
 
Здравствуйте. Проводил сортировку данных, строки расположились неправильно - 1 Mar 2019 встало раньше, чем 28 Feb 2019. В общем, программа провела сортировку сначала по числам, и поставила 1 раньше 20, 21,22 и тд -не смотря на месяц... Как перевести дату вот в такой вид - 2019.02.28 (год, месяц, дата)??
 
Здравствуйте. У Вас дата записана как текст,  Excel её так и видит текстом, поэтому такая сортировка неправильная. Попробуйте преобразовать столбец с датами в число. Выделите весь столбец--на вкладке Данные--Текст по столбцам--Готово. Попробуйте вновь сортировать. Если не получится выкладывайте файл с данными.
 
Данные -текст по столбцам- шаг 1 - шаг 2 - шаг 3
к сожалению нигде не увидел, как текст заменить на числа...
Проблема в том, что если сортировку выполнять после  "текста по столбцам", то сортируется только первый столбец, а не вся строка. И значения перемешиваются.
 
Цитата
gling написал: Если не получится выкладывайте файл с данными.
Не весь. Достаточно небольшого диапазона с проблемой
 
это исходный файл. Пример, так сказать.  
Изменено: tayers - 13.03.2019 18:06:59
 
После сортировки 05 марта стоИт раньше в таблице,чем 10 февраля.
Как изменить дату в числовой вариант 2019.03.05 (гггг.мм.дд) ?? Тогда ошибка думаю исправится...
Изменено: tayers - 13.03.2019 18:19:00
 
что по-Вашему больше 0 или 5?
поэтому АА,0.... находится раньше чем АА,1

у Вас там нет дат, там есть текст отдаленно похожий на даты
нельзя называть тему "неправильная сортировка дат", если Вы сортируете текст, а не даты
и понятно, что сортировка работает правильно - текст посортирован очень строго

а теперь самое время сформулировать название темы и собственно вопрос, который Вас волнует.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
То есть вы хотите сказать, что программа не знает что это дата и принимает ее просто за текст? А как я могу подсказать программе что это дата? Если я расставляю текст по столбцам, а потом сортирую, то сортируется только первый столбец А. Столбец с датами, как и все последующие столбцы остаются на своих местах, поэтому значения таблицы перепутываются.
 
Обработайте диапазон формулой (в подкрашенных ячейках). Она заменит текстовое обозначение месяца на номер. Потом замените результат формулы на значения и с помощью "Текст по столбцам" разобьете данные. Даты будут нормальными датами.
Изменено: Sceptic - 13.03.2019 23:52:47
 
В вашем варианте 5 марта все равно стоит выше 10 февраля... может как-то можно перевернуть даты : гггг/мм/дд - чтобы день был в конце, а сначала год и месяц ?
 
tayers, Вы проделали операции, которые я описал? Или просто открыли файл?
 
Цитата
tayers написал:
В вашем варианте...
tayers, а в Вашем варианте нет дат. Вообще нет. Следовательно, сортировка по дате невозможна.
Как можно сортировать по параметру, которого нет?
 
tayers, здравствуйте! Попробуйте заменить формулу в файле Скептика на эту
Код
=ДАТАЗНАЧ(СЦЕПИТЬ(ПСТР(A1;4;2);".";ВПР(ПСТР(A1;7;3);$E$1:$F$12;2;0);".";ПСТР(A1;11;4)))

Протяните ее вниз и измените формат ячеек на Дата. У меня работает сортировка.
Изменено: AnnaAnna - 14.03.2019 23:31:24
 
Цитата
Sceptic написал: Обработайте диапазон формулой... замените результат формулы на значения и с помощью "Текст по столбцам" разобьете данные
У меня не получилось.... я честно говоря не понял как "обработать диапазон формулой". Диапазон выделил, попробовал вставить формулу, но ничего не получилось

Цитата
AnnaAnna написал: Попробуйте заменить формулу в файле Скептика
Пишет: "Некоторые формулы содержат циклические ссылки и напрямую или косвенно ссылаются на самих себя, то есть на ячейки, в которых находятся. Из-за этого формулы могут вычисляться неправильно. Попробуйте удалить или изменить эти ссылки либо переместить формулы в разные ячейки.

Цитата
Юрий М написал:  в Вашем варианте нет дат. Вообще нет.
этот файл я набрал вручную для примера, чтобы обьяснить проблему.. Сам файл, с которым я работаю, велик для загрузки. Попробую скопировать его часть.
 
tayers, здравствуйте! Не знаю, откуда взялись у вас циклические ссылки, вроде бы удалось загрузить фаил.
 
Цитата
tayers написал:
Сам файл, с которым я работаю, велик для загрузки. Попробую скопировать его часть.
не нужно копировать его на части. и тем более выкладывать сюда. для обьяснения сути проблемы достаточно 5-10 строк с данными
а дальнейшем внимательно читатаете и выполняете инструкции, которые Вам пишут
не получается что-то - тут же пишите что не получилось и снова сюда файл с теми же 5-10 строк и но уже с тем, что не получилось
и так постепенно в зависимости от Вашей подготовки и способности воспринимать информацию через 2-5-10-40 сообщений у Вас будет готовое решения
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Насколько я понял, проблема лишь в том, что он выделяет один столбец и пытается его сортировать. Естественно, все остальные столбцы при этом не сортируются... Но это лишь догадка...
Если автоматизировать бардак, то получится автоматизированный бардак.
 
Ну да, выделяю один столбец. Программа не дает сортировать весь выделеный диапазон.
Пишет : "Для всех условий сортировки должны быть указаны строка или столбец. Проверьте выбранное условие сортировки и повторите попытку."
Из-за этого мне приходится сортировать файл начальный, до расстановки "текст по столбцам", но вылазит вот такая проблема с датами...
 
Чегой-то она не дает сортировать диапазон? включите фильтр в диапазоне и сортируйте на здоровье. Или выделите весь диапазон и превратите его в "умную" таблицу - там уже по умолчанию фильтр будет стоять.
Кому решение нужно - тот пример и рисует.
 
Можно еще простенький скрипт повесить на активацию листа с конвертацией текстовых дат в нормальные.

ОФФ: В свое время именно проблема с датами, точнее что пользователи заносят даты в текстовом формате, и подтолкнула к изучению алгоритмов сортировки)
 
Анна, файл в посте №15 проблему не решает, поскольку дополнительный столбец с "правильными"  датами проблему не решил, неправильные (19-Feb-2019) ведь никуда не деваются....
Странно то, что ИЗНАЧАЛЬНО, когда файлы .csv были каждый по отдельности, дата у них стояла правильная - 20190219. После объединения файлов .csv в один общий файл с помощью командной строки даты становятся в текстовый вариант 19-Feb-2019. Можно ли в настройках самого экселя где-нибудь галочку поставить, чтобы программа числовые даты не меняла на текстовые?

Пытливый: Я пока никак не дружу с умными таблицами, поэтому не знаю,о чем вы.....

Anchoret: Скрипты, даже простенькие, тоже пока не умею.
 
tayers, конечно не деются, попробуйте заменить на значения, т.е. в отдельном столбце ставите формулы, получаете нужный формат даты затем выделяете данные в этом столбце, копируете и вставляете как значение в свою таблицу, исправляете формат на Дата, у вас исчезнут AA,10-Feb-2019,1222, но останется 10.02.2019, затем можете сортировать. Столбец с формулами можно удалить, он станет бесполезным.
Если эти дополнительные данные АА и 1222 - важны, то предварительно надо делать разделение на столбцы (разделитель запятая и дефис, последний не обязательно) и менять формулу ДАТАЗНАЧ. У вас получиться отдельный столбец с буквенными значениями, с датой и столбец с цифровыми значениями.

Умную таблицу сделать легко, выделяете диапазон таблицы вместе с заголовками (если они есть) и нажимаете сочетание клавиш Ctrl + L, но как это поможет сортировать вашу исходную таблицу по датам, которых нет, я  не знаю.

P.S. может быть я не понимаю, что вы хотите получить на выходе и все о чем мы беседуем вам просто не подходит вообще.
 
Цитата
tayers написал:
когда файлы .csv были каждый по отдельности
Проблема в неправильном импорте текстовых файлов .csv в Excel. Почитайте об открытии/импорте файлов .csv и, в частности, о параметре Local:=False, что, вероятно, может помочь. Если проблема не решится, то выложите исходный (исходные) .csv файл(ы).
Владимир
 
Извиняюсь, я тут напутал, дал неверную информацию. Изначально файлы .csv УЖЕ БЫЛИ такими, дата прописывалась так с самого начала 20-Mar-2019.
В итоге программа выстраивает даты таким образом - сначала все  1-е числа, 1 августа и т.д. Да, эксель не видит, что это даты, месяца он расставляет по алфавиту - сначала Aug, август, и так далее.
 
Выложите один из таких csv-файлов (или его фрагмент) - тогда можно будет продемонстрировать правильную работу с ним.
Изменено: sokol92 - 27.03.2019 16:54:02
Владимир
 
1 - часть одного из изначальных файлов
2 - после обьединения множества этих файлов командной строкой в один, сортировки, текст по столбцам получается файл 2, как видите, с неправильными датами. Замена даты на числовой вариант 22-Mar-2019 на 22.03.2019 тоже ничего не поменяет к сожалению.... Нужно поменять формат даты на 2019.03.22 , только не знаю как это сделать...
 
Мы же договаривали о файлах *.csv (это текстовые файлы), а Вы прикрепляете файлы Excel. :)  
Владимир
 
не правильная дата - не правильная сортировка. все логично
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Эти данные я скачивал с сайта. Там написано - данные в формате .csv . Данные скачивались в загрузки в браузере Гугл Хром, оттуда я их перетаскивал в папку.... Я открыл их экселем? Для открытия файлов .csv нужна установка какой-то программы? Что я сделал не так?
 
Цитата
tayers написал:
Я открыл их экселем
Для обработки csv-файлов с помощью Excel есть много способов. Если Вы выложите csv-файл, то можно будет подобрать оптимальный метод обработки.
Владимир
Страницы: 1 2 След.
Наверх