25.09.2018, 05:13 [+3 UTC]
в нашей команде: 2 973 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.50 (13.09.2018)

Общие новости:
24.09.2018, 16:49

Форум:
21.09.2018, 12:18

Последний вопрос:
23.09.2018, 21:57

Последний ответ:
24.09.2018, 13:59

Последняя рассылка:
24.09.2018, 18:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
15.05.2012, 10:03 »
Иван Васильевич Митяев
спасибо! [вопрос № 186015, ответ № 270810]
27.03.2012, 04:37 »
Даровко Антон Владимирович
Я ставлю Вам оценку отлично, но Вы не сделали рисунки и схемы к задаче и не выписали что дано в условии. [вопрос № 185686, ответ № 270331]
15.10.2009, 04:44 »
Infinity shadow
Большое спасибо за ответ и помощь! Вряд ли где бы еще нашел ответ так быстро. А он был мне действительно нужен:) Еще раз спасибо. Всего доброго! [вопрос № 173258, ответ № 255420]

РАЗДЕЛ • Пакет MSOffice

Установка, настройка и работа в пакете Microsoft Office.

[администратор рассылки: Megaloman (Академик)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 497
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 93
FOXhunter
Статус: Профессионал
Рейтинг: 43

Перейти к консультации №:
 

Консультация онлайн # 193051
Раздел: • Пакет MSOffice
Автор вопроса: alinosis14 (Посетитель)
Отправлена: 07.04.2018, 20:32
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе: Как можно выстроить двух значные числа после запятой в строке?
Есть двухзначные числа: 86,43,79,22,08,91,66,35,63,25,... ит., далее..
как ехель выстроить было в строке: 08,22,25,35,43,63,66,79,86,91,
просто набор срок большой и все перtставлять в ручную- это просто "засада"! Или может какая другая прога есть!?

Состояние: Консультация закрыта

Ответ # 276396 от Megaloman (Академик)

Здравствуйте, alinosis14!
Предлагаю несколько вариантов решения.
1. Если Вы переносите данные в Excel и ряд чисел, например, 86,43,79,22,08,91,66,35,63,25 хранится в одной ячейке, то для получения отсортированных этих данных в другой ячейке я написал в Excel пользовательскую функцию.
Пример таблицы с Вашими данными и применением моей функции здесь.
Для работы в этой таблице надо разрешить выполнение макросов.

Пусть данные хранятся в ячейке А2. Тогда использование функции
=SortCell(A2;",")
Здесь A2 - адрес обрабатываемой ячейки и "," - разделитель.
Если в ячейке A2 значения =86,43,79,22,08,91,66,35,63,25 то результат функции в ячейке с функцией 08,22,25,35,43,63,66,79,86,91
Если исходных ячеек много, эта функция распространяется в других ячейках как обычная стандартная, например, как синус.

2. Как выяснилось, первоначально данные содержатся в текстовом файле.
Вы приводили пример этого файла.
Вот VBS-скрипт для сортировки данных прямо в текстовом документе
Сохраните файл с расширением .vbs и запускайте его на выполнение как любой другой исполнимый файл.
Для работы в скрипте надо прописать реальные пути к исходному файлу и отсортированному файлу. У меня это
FileIn = "Z:\Box_In\rfpro2.txt"
FileOut = "Z:\Box_In\rfpro2.sort.txt"
Имена исходного и отсортированного файлов могут совпадать, при этом, естественно, исходный файл будет перезаписан.

3. При необходимости многократно обрабатывать текстовые файлы удобнее создать, например, на рабочем столе иконку на исполнимый файл и затем в проводнике мышкой затаскивать на неё обрабатываемый файл.
.VBS-скрипт для такой работы здесь.
Пусть скрипт называется, например, Z:\Soft_In\kuku.vbs
Сделайте на рабочем столе иконку на
Wscript Z:\Soft_In\kuku.vbs
Теперь Ваш текстовый файл из любого места (например, tralala.txt) в проводнике можете мышью затащить на эту иконку.
В результате получим отсортированный файл tralala.sort.txt рядом с исходным.
Можно вручную запустить этот скрипт, например, каком-либо файловом менеджере или командном окне с именем файла в параметре, например
kuku.vbs tralala.txt
Конечно, если kuku.vbs tralala.txt находятся в одной папке и она активна, иначе надо указывать полный путь.

4. И, наконец, наиболее трудоёмкий, с точки зрения ручного труда, способ. Достоинство: применение исключительно стандартных инструментов Excel без какого-либо программирования. Ориентируюсь по представленному текстовому файлу
В Excel:
- Файл-Открыть-Выбрать тип: Текстовые файлы - Найти файл -Открыть
- С разделителями - Далее
- Убрать птичку "табуляция" поставить "запятая" -Далее
- Текстовый - Готово
Каждое число из текстовой строки в Excel при этом попадёт в отдельную ячейку. Теперь стандартным инструментом Excel можно их сортировать.
- Выделим A2:J52
- Данные -Сортировка
- Параметры - Столбцы
- Сортировать по - Строка 2
- Все данные похожие на числа как числа
Получили таблицу с отсортированными данными, каждое число при этом в отдельной ячейке.
Пример такой таблицы здесь.

Эту таблицу можно сохранить, если нужно, как текстовый файл с разделителями
- Excel - Файл -Сохранить как
- Тип файла CSV (разделитель - запятая)
- На предупреждение об удалении несовместимых форматов ответить -Да
У меня Excel 2010. Почему-то вместо запятых в CSV-файле получаю разделители - ;. Но любым текстовым редактором контекстно ; меняется на ,
Пример CSV-файла здесь.

Можно получить, конечно, в Excel, объединение полученных отдельных отсортированных ячеек в одной с помощью формулы, но это, ИМХО, трудоёмко и, учитывая предыдущие способы решения Вашей проблемы, не нужно.
Однако, вот пример таблицы с такими формулами.









Консультировал: Megaloman (Академик)
Дата отправки: 09.04.2018, 14:38

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 193051

Megaloman
Академик

ID: 137394

# 1

= общий = | 07.04.2018, 20:40 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата:
Как можно выстроить двух значные числа после запятой в строке?
Как понять? Все числа в одной клетке? Как эти числа попадают в Excel?

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 07.04.2018, 20:45

alinosis14
Посетитель

ID: 401942

# 2

= общий = | 07.04.2018, 20:50 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

ДА.

alinosis14
Посетитель

ID: 401942

# 3

= общий = | 07.04.2018, 20:51 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Копирую с блокнота в эксель

alinosis14
Посетитель

ID: 401942

# 4

= общий = | 07.04.2018, 20:53 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

НАдо что бы они выстраивались по возрастанию....

Megaloman
Академик

ID: 137394

# 5

= общий = | 07.04.2018, 20:58 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

А что перед этим на листе в Excel? Он чем-то заполнен или пуст? А в файле с этой строкой, которую Вы открываете в блокноте, что-то еще есть? Хотелось бы получить этот файл.

=====
Нет времени на медленные танцы

alinosis14
Посетитель

ID: 401942

# 6

= общий = | 07.04.2018, 21:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Да открываю эксель копирую с блокнота набор выстроенных цифр. но вот редактировать каждую ячейку это просто финиш....

alinosis14
Посетитель

ID: 401942

# 7

= общий = | 07.04.2018, 21:30 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Вот файл........

-----
 Прикрепленный файл:  скачать (XLSX) » [9.8 кб]

alinosis14
Посетитель

ID: 401942

# 8

= общий = | 07.04.2018, 21:30 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Вот файл........

-----
 Прикрепленный файл:  скачать (XLSX) » [9.8 кб]

Megaloman
Академик

ID: 137394

# 9

= общий = | 07.04.2018, 21:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Можно загрузить текстового файл с цифрами в эксел с разделителями. Цифры станут каждая в отдельную клетку. Они так элементарно могут быть отсортированы. Чтобы что-то конкретно пошагово объяснить, я хочу видеть файл. Текстовый. Откуда копируете. Экселовский - не интересно.
Далее. Отсортировали. Что с этим делать?

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 07.04.2018, 21:34

alinosis14
Посетитель

ID: 401942

# 10

= общий = | 07.04.2018, 21:37 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Вот..

-----
 Прикрепленный файл:  скачать (TXT) » [1.8 кб]

alinosis14
Посетитель

ID: 401942

# 11

= общий = | 07.04.2018, 21:39 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Надо просто все откорректировать и создать таблицу с графиком... движения камеры.

alinosis14
Посетитель

ID: 401942

# 12

= общий = | 07.04.2018, 21:39 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Но надо все по возрастающей что бы понять как двигалась камера.

alinosis14
Посетитель

ID: 401942

# 13

= общий = | 07.04.2018, 21:41 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Надо просто то ли создать формулу для ячейки или есть настройки то подскажите где и как.а там я разберусь дальше...

Megaloman
Академик

ID: 137394

# 14

= общий = | 07.04.2018, 22:14 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Ориентируюсь по представленному текстовому файлу
В Excel:
Файл-Открыть-Выбрать тип: Текстовые файлы - Найти файл -Открыть
С разделителями - Далее
Убрать птичку "табуляция" поставить "запятая" -Далее
Текстовый - Готово
Выделим A2:J52
Данные -Сортировка
Параметры - Столбцы
Сортировать по - Строка 2
Все данные похожие на числа как числа

Аналогично второй блок.
Полученное можно сохранить в формате xlsx или другом

Попробуйте, отпишитесь

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 07.04.2018, 22:18

alinosis14
Посетитель

ID: 401942

# 15

= общий = | 07.04.2018, 22:25 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Че-то не то.......

-----
 Прикрепленный файл:  скачать (XLSX) » [18.0 кб]

alinosis14
Посетитель

ID: 401942

# 16

= общий = | 07.04.2018, 22:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Все параметры разлетелись по ячекам..............?

Megaloman
Академик

ID: 137394

# 17

= общий = | 07.04.2018, 22:36 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Делайте внимательнее. У меня вот это: rfpro.xlsx (11.5 кб)

=====
Нет времени на медленные танцы

Megaloman
Академик

ID: 137394

# 18

= общий = | 07.04.2018, 22:40 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата:
Все параметры разлетелись по ячекам
Вас это не устраивает? Что надо получить в конечном результате? В моём файле данные отсортированы по возрастанию.

=====
Нет времени на медленные танцы

alinosis14
Посетитель

ID: 401942

# 19

= общий = | 07.04.2018, 22:49 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

И теперь их надо копировать в одну ячеку?

Megaloman
Академик

ID: 137394

# 20

= общий = | 07.04.2018, 22:51 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата:
И теперь их надо копировать в одну ячеку?

Что Вы хотите получить в конце концов.
Можно получить Вот такой файл. http://rfpro.ru/upload/10935

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 07.04.2018, 23:01

Megaloman
Академик

ID: 137394

# 21

= общий = | 07.04.2018, 22:55 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Объясните задачу от начала и до конца - что должно получиться в ответе smile

=====
Нет времени на медленные танцы

alinosis14
Посетитель

ID: 401942

# 22

= общий = | 07.04.2018, 22:55 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

- ??????????????
Что Вы хотите получить в конце концов.
Можно получить Вот такой файл. rfpro.csv (1.7 кб)
http://rfpro.ru/d/10935._???????????

Megaloman
Академик

ID: 137394

# 23

= общий = | 07.04.2018, 23:04 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Что-то сбойнула ссылка. Я исправил пост, скопируйте оттуда ссылку, посмотрите файл.
http://rfpro.ru/upload/10935

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 07.04.2018, 23:04

alinosis14
Посетитель

ID: 401942

# 24

= общий = | 07.04.2018, 23:10 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

НУ да это классно!!!!!!
Уже позно завтра напишу что получилось и файл скину.........

alinosis14
Посетитель

ID: 401942

# 25

= общий = | 07.04.2018, 23:11 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Кстати, а ка получить такой расчет???

Алексеев Владимир Николаевич
Советник

ID: 259041

# 26

= общий = | 08.04.2018, 03:04 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Вы писали: "просто набор срок большой и все перtставлять в ручную- это просто "засада"!" - Задавая Вопрос, надо продумать его текст и сообщить помощникам конкретно : "Что у Вас есть?" и "Что Вы хотите получить?".

"Копирую с блокнота в эксель" - Вы делаете лишнюю работу. Если у Вас исходные данные размещены в текстовом документе типа Путь\Исходник2018.04.08.txt , и Вы хотите получить сортированные данные в подобный Исходник2018.04.08сортир.txt или заменить Исходник, то не обязательно вызывать тяжёлое Excel-приложение-посредник и копировать данные туда-обратно.

"Или может какая другая прога есть!?" - да, есть много программ, умеющих сортировать. Можно, например, написать маленький скрипт типа СортировщикЧисел.vbs , в сис-папке SendTo создать ярлык на этот сортировщик. А затем из контекстного меню Вашего исходника Вы будете выбирать команду "Отправить к \ СортировщикЧисел". И скрипт создаст Вам отсортированный файл Отсортировано.txt , без всяких манипуляций с Excel .

А если Вам надо сортировать ОЧЕНЬ часто, то можно написать АвтоСортировщик, который запомнит Вашу папку с исходниками. Одним Вашим клав-сочетанием (например Ctrl+F12 ) АвтоСортировщик выберет из указанной папки свежайший текстовый исходник и поместит отсортированный поток чисел, куда Вы прикажете.

Выберите наиболее удобный для Вас вариант.

• Отредактировал: Алексеев Владимир Николаевич (Советник)
• Дата редактирования: 08.04.2018, 03:24

Алексеев Владимир Николаевич
Советник

ID: 259041

# 27

= общий = | 08.04.2018, 04:07 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Я ещё раз перечитал Ваши посты и вынужден заметить, что VBScript НЕ имеет встроенного инструмента для автоматического построения графиков. Для авто-построения графиков Вам лучше пере-задать свой Вопрос в Раздел Программирование \ "Pascal / Delphi / Lazarus".

Либо воспользоваться Excel-примером от уважаемого эксперта Megaloman с распределением каждого Вашего числа в отдельную ячейку. Ибо графо-построитель Excel-приложения выбирает числовые данные из ячеек (а не массив из единственной ячейки).

alinosis14
Посетитель

ID: 401942

# 28

= общий = | 08.04.2018, 10:24 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Алексеев Владимир Николаевич:

Уважаемый Владимир Николаевич !
КОнечно буду рад любой помощи, за скрипты слышал.но как писать или ими пользоваться понятия не имею.
Конечно классно иметь и скрипт и автосортировщик если вас не затруднить окажите помощь Владимир Николаевич .

alinosis14
Посетитель

ID: 401942

# 29

= общий = | 08.04.2018, 10:25 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Конечно странно что офис не имеет такого простого инструмента........................

Алексеев Владимир Николаевич
Советник

ID: 259041

# 30

= общий = | 08.04.2018, 11:10 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Помощь Вы получите, только я прошу Вас поменьше эмоций и получше продумывайте свои сообщения перед отправкой, а то Вы строчите длинные многоточия, несколько постов вдогонку, путаете понятия. А наша с Вами работа будет долгой, страница получится очень растянутой, искать нужную инфу в такой странице будет утомительно.

Вы писали : "странно что офис не имеет такого простого инструмента" - Я поправляю Вашу путаницу: Офис ИМЕЕТ графо-построитель, но он громоздкий, нуждается в установке и загружается более 2 секунд на моём стареньком компутере. Поэтому я больше люблю VBScript , который исполняется очень быстро, и в отличие от всех прочих языков программирования не требует установки специальной среды программирования. Мои vbs-скрипты компактно-маленькие и работают в любой Windows-системе БЕЗ компиляции в exe-файл.

"классно иметь и скрипт и автосортировщик" - это - одно и то же. Мы ждём от Вас другую информацию: Насколько обязательно Вам автоматическое построение графиков?
Если Вам достаточна лишь сортировка чисел из одного текст-файла в другой текст-файл, то такой vbs-скрипт я могу и сам написать.
А если Вы хотите ещё и график чтоб строился автомати, то тут придётся нам привлекать авто-запуск Excel, тк мой VBScript сумеет только отсортировать числа, вызвать Excel и заполнить его ячейки.
А дальше надо в Excel-приложении запускать его внутренний скрипт VBA, чтоб тот построил график по данным из ячеек. Я ещё не выучил VBA, нам придётся просить академика Megaloman, чтоб он сделал эту вторую часть работы. Я понятно объяснил?

• Отредактировал: Алексеев Владимир Николаевич (Советник)
• Дата редактирования: 08.04.2018, 13:16

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 31

= общий = | 08.04.2018, 11:41 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Megaloman, Алексеев Владимир Николаевич:

Насколько мне известно, в MS Excel есть оператор конкатенации.

=====
Facta loquuntur.

Megaloman
Академик

ID: 137394

# 32

= общий = | 08.04.2018, 12:13 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

© Цитата: alinosis14
как ехель выстроить было в строке: 08,22,25,35,43,63,66,79,86,91
© Цитата: alinosis14
Конечно странно что офис не имеет такого простого инструмента........................
Вы сами потребовали Excel. А на каждый мелкий чох не наздравствуешься. Excel позволил без программирования решить Вашу задачу, если она заключалась в получении текстового файла с отсортированными строками. Если это Вам интересно, дообъясню подробнее - мои приведенные результаты Вас вроде бы удовлетворили.
© Цитата: alinosis14
НУ да это классно!!!!!!
Вы не сообщаете конечный вид получаемого результата.
© Цитата: Алексеев Владимир Николаевич
Если у Вас исходные данные размещены в текстовом документе ... и Вы хотите получить сортированные данные в подобный ...
то попробуйте vbs-скрипт
FileIn = "Z:\Box_In\rfpro2.txt"
FileOut = "Z:\Box_In\rfpro2.sort.txt"

Delim = ","

Set FSO = CreateObject("Scripting.FileSystemObject")

On Error Resume Next
Set inFile = FSO.OpenTextFile(FileIn, 1)
If Err.Number <> 0 Then
    MsgBox FileIn + vbCrLf + Err.Description
    WScript.Quit 1
End If
On Error GoTo 0

AllTxt = inFile.ReadAll
inFile.Close

Mas = Split(AllTxt, vbCrLf)

On Error Resume Next
Set inFile = FSO.OpenTextFile(FileOut, 2, True)

If Err.Number <> 0 Then
    MsgBox FileOut + vbCrLf + Err.Description
    WScript.Quit 1
End If
On Error GoTo 0

For Each S In Mas
    S = Trim(S)
    If Right(S, 1) = Delim Then S = Mid(S, 1, Len(S) - 1)
    ss = Split(S, Delim)
    Uss = UBound(ss)
    Lss = LBound(ss)
    If Not Uss = Lss Then
        sout = ""
        For i = Lss To Uss
            iss = CInt(ss(i))
            For j = i To Uss
                jss = CInt(ss(j))
                If jss < iss Then
                    stmp = ss(i)
                    iss = CInt(ss(j))
                    ss(i) = ss(j)
                    ss(j) = stmp
                End If
            Next
            If Not sout = "" Then sout = sout + Delim
            sout = sout + ss(i)
        Next
    Else
        sout = S
    End If
    inFile.WriteLine sout
Next
inFile.Close
Пропишите Ваши имена файлов. vbs-скрипт запускается как любой исполнимый файл.

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 08.04.2018, 18:27

alinosis14
Посетитель

ID: 401942

# 33

= общий = | 08.04.2018, 14:24 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

А куда прописывать имена номеров? Извените......

alinosis14
Посетитель

ID: 401942

# 34

= общий = | 08.04.2018, 14:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Megaloman:

По файлам которые я у вас скачал. не чего не получается . Первые цифры сортируются а последнии три цифры в нижних рядах нет.

alinosis14
Посетитель

ID: 401942

# 35

 +1 
 
= общий = | 08.04.2018, 14:31 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Экспертам раздела:

"классно иметь и скрипт и автосортировщик" - это - одно и то же. Мы ждём от Вас другую информацию: Насколько обязательно Вам автоматическое построение графиков?
Если Вам достаточна лишь сортировка чисел из одного текст-файла в другой текст-файл, то такой vbs-скрипт я могу и сам написать.
А если Вы хотите ещё и график чтоб строился автомати, то тут придётся нам привлекать авто-запуск Excel, тк мой VBScript сумеет только отсортировать числа, вызвать Excel и заполнить его ячейки.
А дальше надо в Excel-приложении запускать его внутренний скрипт VBA, чтоб тот построил график по данным из ячеек. Я ещё не выучил VBA, нам придётся просить академика Megaloman, чтоб он сделал эту вторую часть работы. Я понятно объяснил?

- Да все понятно . да я думаю что просто хватит одного скрипта по цифрам. Нет нужды вам голову морочить . Извените.

Алексеев Владимир Николаевич
Советник

ID: 259041

# 36

= общий = | 08.04.2018, 15:45 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Вам не за что извиняться, Вы ни в чём не виноваты. Мы пока что притираемся, ищем общий язык.
Вы спросили: "А куда прописывать имена номеров?" - которых номеров? В дистанционном общении надо стараться выражаться конкретно, чтоб Вас понимали НЕ двусмысленно. Эксперты - не телепаты.

Последний пост Вы адресовали "экспертам раздела". Программа портала разослала Ваш пост ВСЕМ многочисленным экспертам. Чтоб не беспокоить понапрасну многих людей, занятых другими работами, адресуйте пост конкретному эксперту (тогда почта отправит т-ко ему) или НЕ заполняйте поле "Кому". Тогда почта портала отправит сообщение т-ко тем, кто принял участие в Вашем мини-форуме.

Вы не сообщили Какая у Вас ОперСистема? Какой путь к папке с файлами, которые надо сортировать? Каким образом Вы хотите выбрать из множества файлов в этой папке единственный файл для текущей сортировки? Варианты :
1)Свежайший по времени-дате,
2)Из контекстного меню любого из многих файлов выбрать команду Отправить,
3)Файл для сортировки всегда имеет фиксированное имя КакоеИмя?, файлы с др именами НЕ сортируем.
4)Предложите свой вариант.
Ответьте пожалуйста на все эти вопросы. Путь к файлу копируйте из адресной строки Проводника, а не набирайте с клавиатуры во избежание ошибки.

-----
 Прикрепленный файл (кликните по картинке для увеличения):

Алексеев Владимир Николаевич
Советник

ID: 259041

# 37

= общий = | 08.04.2018, 15:56 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Гордиенко Андрей Владимирович:

Вы писали: "Насколько мне известно, в MS Excel есть оператор конкатенации" - да, в Excel есть Макросы для написания программ, а в операциях обработки строковых типов данных (не чисел) применяется Оператор конкатенации & (склеивание) символов и строк.

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 38

 +1 
 
= общий = | 08.04.2018, 16:02 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Алексеев Владимир Николаевич:

Если поместить числа в ячейки, указав текстовый формат данных, то оператор конкатенации можно применить и к числам, как я понимаю. Впрочем, прошу извинить, этот оператор я упомянул на всякий случай: вдруг он упущен из виду. smile

=====
Facta loquuntur.

Megaloman
Академик

ID: 137394

# 39

= общий = | 08.04.2018, 17:04 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

пришлите Ваш исходный текстовый файл (если он другой) и результат обработки
Что такое имена номеров?

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 08.04.2018, 17:05

Megaloman
Академик

ID: 137394

# 40

= общий = | 08.04.2018, 17:12 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Гордиенко Андрей Владимирович:

© Цитата: Гордиенко Андрей Владимирович
Насколько мне известно, в MS Excel есть оператор конкатенации
Вы правы, но загвоздка в другом, как я понимаю, чтобы применить эту операцию к ряду ячеек и получить результат в одной, надо в формуле в этой ячейке помянуть каждую ячейку, да еще и запятую после каждой. А функции типа суммы для конкатенации диапазона ячеек я не знаю. Может, я отстал, и в какой-то версии офиса она есть? А для задачи, где не задано количество объединяемых ячеек, да и в случае большого их количества, это неудобно. Можно написать свою функцию, конечно.

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 08.04.2018, 17:15

alinosis14
Посетитель

ID: 401942

# 41

 +1 
 
= общий = | 08.04.2018, 17:16 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Экспертам раздела:

Винда 7

alinosis14
Посетитель

ID: 401942

# 42

= общий = | 08.04.2018, 17:22 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

1)на планшете в блокноте пишу цифры с позиций аппаратуры видео
2) Прихожу домой копирую с блокнота планшета на комп в блокнот
3) записываю в эксель по возрастанию в каждую ячейку согласно номеру камеры(столбца)

alinosis14
Посетитель

ID: 401942

# 43

= общий = | 08.04.2018, 17:25 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Зачем путь копиравать если он просто произвольный ?
болкнот может лежать на рабочем , в моих документах, ит, д....

alinosis14
Посетитель

ID: 401942

# 44

= общий = | 08.04.2018, 17:28 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Экспертам раздела:

Цыфры двоичные от 01 до 180

alinosis14
Посетитель

ID: 401942

# 45

= общий = | 08.04.2018, 17:51 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Экспертам раздела:

Вот файл

-----
 Прикрепленный файл:  скачать (XLSX) » [13.5 кб]

Megaloman
Академик

ID: 137394

# 46

= общий = | 08.04.2018, 18:07 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Я исправил ошибку в коде. Возьмите его заново.
Кроме того, я был вынужден доработать код, так как у Вас почему-то после последнего числа в строке может стоять разделитель (запятая)/
Зачем Вы вставляете данные в Excel? Вам они надо в Excel-е именно в таком виде?

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 08.04.2018, 18:30

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 47

= общий = | 08.04.2018, 18:23 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Не адресуйте свои сообщения всем экспертам раздела. Выбирайте адресата.

=====
Facta loquuntur.

Алексеев Владимир Николаевич
Советник

ID: 259041

# 48

= общий = | 08.04.2018, 19:16 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Вы спросили: "Зачем путь копиравать если он просто произвольный ?" - для правильной работы скрипта надо указать ему документ, который надо отсортировать. Можно использовать и произвольный путь для документа, но тогда скрипт должен закрепиться в фиксированном пути, прописанном в ярлыке папки SendTo, и Вы будете из контекстного меню докума выбирать команду Отправить \ в СортирСкрипт , эта команда запустит скрипт и покажет скрипту путь к вызывателю.

Можно использовать произвольный путь и для докума и для скрипта, если они находятся в одной папке. Но если в этой папке много документов (вчерашние, позавчерашние…), то надо чтоб скрипт обработал тот докум, который Вы хотите, а не какой попало. Для этого я и предложил Вам выше 4 варианта связывания скрипта с нужным документом. А Вы не выбрали вариант. Ждём

Также я не понял, зачем Вы прислали ещё один Excel-файл? Вы же хотели записывать отсортированный результат в другой текстовый файл, верно? А Ваш Excel-файл запутывает нас, в нём есть строка:
"Вот так они должны сортироваться : 25,80,37,44,65,87,91,53,125,130,177,"
в ней после числа 80 следует мЕньшее число 37 . Это не есть сортировка по возрастанию. А что Вы тогда хотите от нас?

Megaloman
Академик

ID: 137394

# 49

= общий = | 08.04.2018, 19:36 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Вот еще вариант.

Delim = ","

Set WArg = WScript.Arguments
If WArg.Count = 0 Then
    MsgBox "Скрипт запущен без аргумента." + vbCrLf + "В аргументе укажите путь к файлу" + vbCrLf + "Скрипт завершается"
    WScript.Quit 1
End If

FileIn = WArg.Item(0)

Set FSO = CreateObject("Scripting.FileSystemObject")

On Error Resume Next
Set inFile = FSO.OpenTextFile(FileIn, 1)
If Err.Number <> 0 Then
    MsgBox FileIn + vbCrLf + Err.Description
    WScript.Quit 1
End If
On Error GoTo 0

AllTxt = inFile.ReadAll
inFile.Close

Mas = Split(AllTxt, vbCrLf)

FileOut = Replace(FileIn, FSO.GetFileName(FileIn), FSO.GetBaseName(FileIn) + ".Sort." + FSO.GetExtensionName(FileIn))

On Error Resume Next
Set inFile = FSO.OpenTextFile(FileOut, 2, True)

If Err.Number <> 0 Then
    MsgBox FileOut + vbCrLf + Err.Description
    WScript.Quit 1
End If
On Error GoTo 0

For Each S In Mas
    S = Trim(S)
    If Right(S, 1) = Delim Then S = Mid(S, 1, Len(S) - 1)
    ss = Split(S, Delim)
    Uss = UBound(ss)
    Lss = LBound(ss)
    If Not Uss = Lss Then
        sout = ""
        For i = Lss To Uss
            iss = CInt(ss(i))
            For j = i To Uss
                jss = CInt(ss(j))
                If jss < iss Then
                    stmp = ss(i)
                    iss = CInt(ss(j))
                    ss(i) = ss(j)
                    ss(j) = stmp
                End If
            Next
            If Not sout = "" Then sout = sout + Delim
            sout = sout + ss(i)
        Next
    Else
        sout = S
    End If
    inFile.WriteLine sout
Next
inFile.Close

Пусть скрипт называется, например, Z:\Soft_In\kuku.vbs
Сделайте на рабочем столе иконку на
Wscript Z:\Soft_In\kuku.vbs
Теперь Ваш текстовый файл (например, tralala.txt) из проводника можете мышью затащить на эту иконку.
В результате получим отсортированный файл tralala.sort.txt рядом с исходным.
Можно вручную запустить этот скрипт с именем файла в параметре, например
kuku.vbs tralala.txt
Конечно, если kuku.vbs tralala.txt находятся в одной папке и она активна, иначе надо указывать полный путь

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 08.04.2018, 19:37

Megaloman
Академик

ID: 137394

# 50

= общий = | 08.04.2018, 20:18 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Вы настойчиво помещаете данные в Excel-таблицу. Не понимаю, зачем. Но хозяин- барин. Я написал для таблицы функцию, которая сортирует данные в клетке. Попробуйте. Для примера я расположил Ваши данные.

Использование функции
=SortCell(A2;",")
Здесь A2 - адрес обрабатываемой клетки.
"," - разделитель.

Если в клетке A2 значения =86,43,79,22,08,91,66,35,63,25
То результат функции 08,22,25,35,43,63,66,79,86,91

Либо, если явно передать строку
=SortCell("86,43,79,22,08,91,66,35,63,25";",")
То результат функции 08,22,25,35,43,63,66,79,86,91

Для работы надо разрешить выполнение макросов.

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 08.04.2018, 20:21

Алексеев Владимир Николаевич
Советник

ID: 259041

# 51

= общий = | 09.04.2018, 17:56 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Эксперт Megaloman уже отправил Вам Ответ с множеством вариантов. А я тем временем писал для Вас свой скрипт. Он ещё не готов сортировать, поскольку от Вас не получены стыковочные данные (разрядность ОперСистемы, путь к папке с документом для сортировки, примерное кол-во мешающих файлов в этой папке…). Этот скрипт читает недостающие данные и записывает их в текстовый файл отчёта КонтентТкщПапки.txt .

Если Ответ товарища Megaloman не поможет Вам с сортировкой, то распакуйте мой скрипт 193051GetInfo.vbs в папку с документом для сортировки, запустите скрипт и возвратите нам созданный файл отчёта.

-----
 Прикрепленный файл:  скачать (ZIP) » [2.5 кб]

alinosis14
Посетитель

ID: 401942

# 52

= общий = | 09.04.2018, 21:33 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Алексеев Владимир Николаевич:

Добрый вечер! Извените был на работе. НУ можно сделать одну папку . а в ней ещё папки подписанные датой и в каждой отдельной папке будет один документ блокнота и скрипт.
Цифры выслал поризвольно экселе не журите......
как посмотрю ваш скрипт обязательно отпишусь.

alinosis14
Посетитель

ID: 401942

# 53

= общий = | 09.04.2018, 21:47 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Megaloman:

Да обязательно попробую и отпишусь скрипт и файл.

alinosis14
Посетитель

ID: 401942

# 54

= общий = | 09.04.2018, 21:49 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Гордиенко Андрей Владимирович:

Винда 64. Владимир Николаевич обязательно попробую и отпишусь просто после работы очень устал-напахался. Извените. обязательно отпишусь.

Megaloman
Академик

ID: 137394

# 55

= общий = | 09.04.2018, 21:57 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Извините, не понял. У Вас что, в папке куча файлов, которые надо сортировать? Я что-то упустил в постановке? При чём разрядность системы и версия Win? У меня ощущение, что я решал одну задачу, а обсуждается совсем другая smile

=====
Нет времени на медленные танцы

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 56

 +1 
 
= общий = | 09.04.2018, 22:35 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Алексеев Владимир Николаевич:


Переадресовываю Вам это сообщение, ошибочно адресованное мне:

© Цитата: alinosis14
Винда 64. Владимир Николаевич обязательно попробую и отпишусь просто после работы очень устал-напахался. Извените. обязательно отпишусь.

=====
Facta loquuntur.

Алексеев Владимир Николаевич
Советник

ID: 259041

# 57

= общий = | 10.04.2018, 02:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Доброе утро! Вы писали: "Извените был на работе" - я так и думал, работа - святое дело, это нормально для всех.
"можно сделать одну папку . а в ней ещё папки подписанные датой и в каждой отдельной папке будет один документ блокнота и скрипт" - не надо ничего мудрить, Вы обратились на Портал rfpro.ru , и с этого момента мудрить должны эксперты. Ваша задача : как можно точнее и конкретнее отвечать на наши учточняющие вопросы и чётко-продуманно отправлять нам свои пожелания, без эмоций.

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

"как посмотрю ваш скрипт обязательно отпишусь" - не торопитесь. Без суеты но с уважением мы сделаем лучше.

alinosis14
Посетитель

ID: 401942

# 58

 +1 
 
= общий = | 13.04.2018, 23:03 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Экспертам раздела:

Добрый вечер всем!!!! Спасибо за помощь!!!! Я выбрал себе файл и он хорошо подходит!!! уже не знаю у кого скачал просто запутался в форумах..... Но все равно всем ОГРОМНЕЙШЕЕ СПАСИБО!!!!!!!!! Тему можно закрывать Файл прикрепляю на обозрение.

-----
 Прикрепленный файл:  скачать (XLS) » [39.5 кб]

alinosis14
Посетитель

ID: 401942

# 59

 +1 
 
= общий = | 13.04.2018, 23:09 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Алексеев Владимир Николаевич:

Все нашол чей файл! Спасибо Владимир Николаевич!!!! Огромное!!!!!!!!! Тему Можно закрывать!!!!!!

Алексеев Владимир Николаевич
Советник

ID: 259041

# 60

= общий = | 14.04.2018, 15:31 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Вы писали: "Спасибо Владимир Николаевич!!!" - спасибо эксперту Megaloman , он и на Ваш Вопрос дал несколько вариантов решений и меня научил программировать.

Учитывая Ваше пожелание "Зачем путь копиравать если он просто произвольный ? болкнот может лежать на рабочем , в моих документах, ит, д…" я тоже написал для Вас скрипт, читающий текстовый файл Исходник.txt без привязки к пути. Лишь бы этот Исходник.txt и скрипт были в одной родитель-папке. Скрипт сортирует зачитанные числа и вписывает их в свеже-созданные файлы с именами типа 2018.04.13-22:41.txt , чтоб избавить пользователя от создания множественных отдельных папок и спасти старые отсортированные файлы от затирания новыми (у каждого файла-получателя авто-уникальное имя). Но теперь, как я понял, мой скрипт Вам больше не нужен.

"уже не знаю у кого скачал просто запутался в форумах" - у Вас есть компьютер, который умеет хорошо хранить информацию и позволяет легко найти её даже ч-з много лет. Текстовые файлики - намного меньше по объёму, чем комп-игры. Я всё храню в компе и Вам советую.
"Тему можно закрывать" - программа портала закроет Вашу тему автомати ч-з 3 суток.

Алексеев Владимир Николаевич
Советник

ID: 259041

# 61

= общий = | 14.04.2018, 15:37 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Megaloman:

Вы советовали: "Я бы выбрал такое решение: Создал бы ручками шаблон/бланк вылизанной отчетной формы с тестовыми данными, с готовой диаграммой, доведённой до максимальной степени совершенства" - конечно, Вы правы, надо начать с Excel-этапа от сортировки до графика и написать VBA-скрипт.

"По нажатию этой кнопочки создадим…График обновится, так как он связан с данными таблицы" - замечательно! Спасибо!

"формулу вписать в ячею программно и то непросто" - "Не вижу проблемы" а Вы попробуйте простой VBA-код:
Sub Макро2() 'учебный код для Excel2003 я изучаю в Excel2007.
Range("B2").Select 'Выделил ячею.
ActiveCell.Value = InputBox("Введи слагаемое1") 'Вписал в неё значени от пользователя.
Range("B3").Select 'Выделил соседн ячею и вписываю второе слагаемое.
ActiveCell.Value = InputBox("Введи слагаемое2")
Range("B4").Select 'Выделил ячею для формулы.
ActiveCell.Formula = "=СУММ(B2:B3)" 'вписываю простую формулу в файл.
ActiveWorkbook.SaveAs Filename:="E:\Soft\Office\VBA\Сумма 2х ячеек.xls" 'поправьте путь на свой.
MsgBox "Я вписал 2 ячеи данных, формулу и сохранил в фйл!" 'доложил об исполнении.
End Sub '=файл создан, но в его ячее B4 отображается #ИМЯ? вместо числа-суммы. При выделении этой ячеи в строке формул отображается нужное значение =СУММ(B2:B3) , но оно не обрабатывается как формула! Я копирую этот фраг, вставляю в любую соседнюю ячею ручками - и там формула работает! Что за глюк? В Excel2007 VBA-синтакс стал другим?

"Не вижу, зачем его в Excel грузить" - я тоже много лет избегал тяжёлый Excel , но случается, у кого-то на чужом компе надо быстро построить график без помощи интернета. Устанавливать для графо-построителя Маткад или Паскаль-среду долго и мало кому нужно. А наш любимый vbs НЕ умеет строить графики самостоятельно. Но зато vbs умеет передать данные для графика в Excel , который есть почти у всех. Вот я мудрю : как организовать такой алгоритм:
1)VBS создаёт Excel-докум с простейшим Макрос1 с авто-запуском и передаёт ему управление.
2)Маленький Макрос1 читает из моей флэшки текст-файл с кодом большого Макрос2 с графо-построителем, строит график и сохраняет этот докум с графиком у клиента.

Вероятно, Вы посоветуете не использовать VBS, а импортировать клиенту готовый Excel-докум с VBA и заране-построенным графиком, который при обнаружении моей флэшки зачитает с неё обновлённые данные и подкорректирует график? Или Вы знаете другой, более простой способ построить график по точкам программно?

Megaloman
Академик

ID: 137394

# 62

= общий = | 14.04.2018, 21:47 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
alinosis14:

Здорово, что Вы нашли решение с формулами, но это всё равно кусок ручного труда. Гораздо эффективнее - моё решение с организацией иконки на рабочем столе для последующей обработки файлов из любого места, затягивая этот файл на эту иконку. Я предлагаю два варианта vbs-скриптов для этого:
1. Затягиваете текстовый файл на иконку скрипта, в Excel получаем отсортированную таблицу.
2. Затягиваете текстовый файл на иконку скрипта, в Excel получаем исходные данные и отсортированную таблицу.
Сохраните файлы с расширением .vbs

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 14.04.2018, 21:49

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.18765 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.50 от 13.09.2018