|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - [решено] Excel: создать одномерный график/таблицу посещений по заданным данным |
|
Разное - [решено] Excel: создать одномерный график/таблицу посещений по заданным данным
|
Новый участник Сообщения: 6 |
Профиль | Отправить PM | Цитировать
Есть генерируемый текстовый файл вида
Иванов 01.09 02.09 03.09 Петров 03.09 04.09 05.09 Сидоров 02.09 03.09 06.09 Чем в Экселе из него сделать график с засечками на единой временнОй оси Или табличку: Поиск по "одномерный график" путного не дал, поиск по "создать график посещений" выдаёт как красиво оформить такую табличку вручную, а интересует именно сама процедура генерации из файла. |
|
Отправлено: 00:06, 13-09-2021 |
Динохромный Сообщения: 700
|
Профиль | Отправить PM | Цитировать
Цитата afj:
Цитата afj:
Содержимое файла можно скопировать "ручками" и просто вставить в первый столбец таблицы. чтобы каждый раз не менять месяц - номер месяца меняется в А1. Все остальное - формулами. Если необходимо получить более автоматизированное решение - приложите пример реальных файлов. |
||||||
------- Отправлено: 10:20, 13-09-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать
Так понимаю, простого решения нет, встроенными графиками визуализировать не получится, только ручками
Имена (точнее идентификаторы на их основе) на более раннем этапе используются как имя файла, так что дубликатов имён нет. А вот дубликаты дат (более одной отметки в день на человека) быть могут. Про помесячность сказано ничего не было, диапазон дат может быть любым, и лимиты единой временнОй оси хорошо бы рассчитывались динамически от входных данных. Кусок реального файла (там ещё и время, но это настраиваемо, для данной визуализации время не нужно, достаточно даты): |
||||
Последний раз редактировалось afj, 13-09-2021 в 13:24. Отправлено: 13:07, 13-09-2021 | #3 |
Динохромный Сообщения: 700
|
Профиль | Отправить PM | Цитировать
Цитата afj:
Цитата afj:
Цитата afj:
Цитата afj:
|
||||||||
------- Отправлено: 15:07, 13-09-2021 | #4 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать
Если визуализировать одномерным графиком, то по моему это должно выглядеть примерно так:
Расположить всех по единой временной линии, и засечки на посещениях. ЗЫ Изначально формулировка была краткой и общей в расчёте на ответ вида "Это типовая задача, в экселе давным-давно есть начиная с версии ххх, волшебная кнопка вооот здесь, жамкай и она всё сама сделает". (Уж в построении графиков Эксель дока) А также в расчёте на то, что это _нашим_ данным придётся подстраиваться под существующую встроенную функцию. Если же пилить вручную, понятно что ТЗ необходимо уточнять. |
|||||
Последний раз редактировалось afj, 13-09-2021 в 16:28. Отправлено: 15:56, 13-09-2021 | #5 |
Динохромный Сообщения: 700
|
Профиль | Отправить PM | Цитировать
afj, посмотрите файл в псевдографике - результат такой должен быть примерно? Понятно, что в реальной таблице могут быть еще какие-то ограничения, поэтому и уточняю.
|
||||
------- Отправлено: 16:15, 13-09-2021 | #6 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Графический график возможно воспринимался бы иначе, но псевдографикой - много визуального шума, иксами/плюсами воспринималось лучше.
Авторасчёт лимитов шкалы времени возможен? |
Последний раз редактировалось afj, 13-09-2021 в 17:47. Отправлено: 17:19, 13-09-2021 | #7 |
fascinating rhythm Сообщения: 6597
|
Профиль | Отправить PM | Цитировать
Powershell
$folder = "D:\temp\visit" $sourceTxt = "$folder\visit-data.txt" $mark = "+" # метка визита в файлах $csv = (gc "$sourceTxt") -match "\.bmp" -replace "\.bmp= ",";" -replace ",\d+:\d+:\d+" |ConvertFrom-Csv -Header name,dates -Delimiter ';' $dates = $csv.dates -split ' ' |sort {$_ -as [datetime]} -Unique $startDate = $dates[0] -as [datetime] $day = $startDate $finishDate = $dates[-1] -as [datetime] $datesRange = do {$day; $day = $day.adddays(1)} until ($day -gt $finishDate) $datesRangeString = "$($startDate.ToShortDateString())-$($finishDate.ToShortDateString())" $reportCsv = "$folder\report $datesRangeString.csv" "Name;" + ($datesRange.toshortdatestring() -join ';') > "$reportCsv" $csv |% { $_.name + ';' + ((diff $datesRange ($_.dates -split ' ' |sort -Unique |% {$_ -as [datetime]}) -IncludeEqual |sort Inputobject).sideindicator -replace '<=',';' -replace '==',"$mark;" -join '') >> "$reportCsv" } # Если установлен модуль ImportExcel (https://www.powershellgallery.com/packages/ImportExcel) if (Get-Module ImportExcel -ListAvailable) { $reportXlsx = $reportCsv -replace 'csv$','xlsx' if (Test-Path "$reportXlsx") {rm "$reportXlsx"} $condText = New-ConditionalText $mark green lightgreen Import-Csv "$reportCsv" -Delimiter ';' |export-Excel -Path "$reportXlsx" -WorksheetName $datesRangeString -ConditionalText $condText -AutoSize -FreezeTopRow -AutoFilter -BoldTopRow } |
||||
------- Последний раз редактировалось DJ Mogarych, 22-09-2021 в 12:50. Отправлено: 12:24, 22-09-2021 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBA - Макрос создания документов Word по данным таблицы Excel | RusGor | Программирование и базы данных | 4 | 01-11-2023 11:17 | |
2016 - Как сгруппировать строки в Excel по данным столбцов (телефон, сайт, соц.сети), ВПР не | megagogo | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 01-08-2021 17:52 | |
Разное - Как в excel импортировать в одну таблицу 2 смежных xml файла? | Vandheer | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 09-09-2016 13:53 | |
2003/XP/2000 - [решено] Excel: График из столбца с датами. | ven00m | Microsoft Office (Word, Excel, Outlook и т.д.) | 1 | 26-03-2012 03:07 | |
2010 - как построить график в эксель по формуле? | Pozia | Microsoft Office (Word, Excel, Outlook и т.д.) | 7 | 29-05-2011 14:29 |
|