Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 99 След.
Парсинг данных в ячеке по заданной маске, Нужен макрос (или формула, но лучше макрос), который будет из ячейки по маске вытягивать данные в столбцы
 
Цитата
Денис Голуб написал: нашел в интернете и немного доработал пример до полного декодинга
а как-же?
Цитата
Денис Голуб написал: подобное не предлагать.
из-за того что вы свои ссылки берёте непонятно где и непонятно как - такой у них и внешний вид, что декодировать апасля хотите... декодируйте по месту их вытягивания (если ссылки получаете запросами к web)... а так получается руками писать utf-8 коды хотите... вам все???... не хочется...
также
на скорую руку прикинула ваш файл (из csv) - чтобы вы сами Посмотрели Какая у вас Структура - и описали наконец адекватное ТЗ - каков источник и что надо на выходе... КАК вы себе представляете такие Record'ы по каким столбцам и где и какой  output визуально хотите ... вы бы хоть потрудились показать "что надо" в Итоге...
p.s.
в макросе во вложении прописан путь к файлу-источнику-csv [заменить на свой]
(чтобы не ковыряться в ячейках пересохранила источник в csv)
но попробовав брать нормальный вид ваших ссылок изначально - вы избавите себя от этого никому-не-нужного ручного дешифрования
p.p.s
хоть отпишитесь, как смотрите на #11... или мой вопрос...
а вообще ТЗ не продумано, а просто сброшено на форум, - мне ваша структура и ваши хотелки от неё не нравятся...  :( ... xl-ю наверно тоже - раз в вашем #8 вы столько раз replace'ите
Изменено: JeyCi - 14 Сен 2018 17:13:46
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Парсинг данных в ячеке по заданной маске, Нужен макрос (или формула, но лучше макрос), который будет из ячейки по маске вытягивать данные в столбцы
 
удивляет внешний вид данных... какими они были из первоисточника?.. случаем не в кавычках и через запятую (вместо |)??.. тогда это структура json -- легко парсится с помощью надстройки PowerQuery...
можно парсить через создание объекта RegExp - если только макрос... что именно не получается - воспользовавшись поиском на форуме?
Цитата
Денис Голуб написал: нужен макрос который
- раздел Работа (на этом форуме)
Изменено: JeyCi - 12 Сен 2018 11:42:55
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 
p.s. читать правильно - всем:
там в #27 у меня рудиментами в комментах осталось слово коллекция (сначала думала её использовать) - потом всё делала на словарях (сейчас просто не перевложу)...
и там видно что в заявках встречается c-6, d-9, и только в m они пересекаются (раньше связи нет)... [к слову о жёлтых]...
- уточнения к #27
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 
Цитата
Андрей VG написал:
Да, выигрыш по памяти, как правило, некоторый будет, возможно, будет выигрыш и по быстродействию.
- вот это я и запомнила  :) ...
кстати класс для LIFO ...
да помню вариант ZVI:
Код
Private Type QuickStack
  Low As Long
  High As Long
End Type
логика мне понравилась:
Цитата
Both LIFO and FIFO can be implemented with an array, the only difference between them is in the way tail and head pointers work. Given you start with LIFO, you can add two extra pointers that would reflect FIFO's tail and head, and then add methods to Add, Remove an so on using the FIFO pointers.
Вообще очереди и стэки (если из простых элементов) - то сортировать в нужном порядке в рекордсете по какому-нибудь счётчику введённому (если есть возможность) - то как-то и проще...
смотрела вашу рекурсию xml, ходила вглубь по папке рекурсивно, даже в заполнение связанных комбобоксов (n-ое количество) - рекурсию вставить пришлось... но не люблю я это дело  и при случае  и возможности стараюсь отказываться от неё...
За напоминание о коде ZVI - спасибо... и за ваш имеющийся на форуме пример рекурсии xml - тоже спасибо!   8)  
Изменено: JeyCi - 30 Авг 2018 19:23:55
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 
Цитата
Андрей VG написал:
прикладываю более тяжёлый пример. Из левой таблицы нужно получить правую.
приложу часть VBA решения (без цикла по устранению неявных связей - руками можно 2-й раз прогнать код по новому диапазону) - и нюансы прописала в файле - продублирую здесь: (в качестве вывода для ТСа - хоть он и пропал как его связи)
- на более полном примере от Андрей VG - видны недочёты ТЗ:
(попробовала отказаться от рекурсии - встречала частый совет по возможности отказываться от неё)
- мой ВЫВОД:
ОСТАЛСЯ разрыв связи ЖЁЛТЫМ - т.к. клиент НЕ обязан вам сообщать о смене своих контактов... поэтому в такой непостоянной информированности о сторонних процессах (смена контактов клиента) -  всё равно могут появляться разрывы цепочек последовательностей…  
ОТСЛЕДИТЬ ??? ЗАЧЕМ ???? (тогда очередная пробежка макросом для устранения начальных неявных связей) - НО не будет успешна если нет этих неявных (или не отражены)
КОГДА СВЯЗИ НЕ ПРЕДОСТАВЛЯЮТСЯ - ВЫ ТЕРЯЕТЕ ТО. ЧТО НЕ ИМЕЕТЕ !!! (причина: система неполноценная ! - гнилой учёт того что считаете не надо вам)
ЕСЛИ НАДО: ВВОДИТЕ КЛЮЧИ…………… используйте связи по ключам !!
==============
я бы такие связи ТСа даже "многие-ко-многим" не назвала бы !! так что вы там теряете, ТС??  8)
==============
Андрей VG ещё раз спасибо за пример!
(может поэтому в рекурсии и застревало выстраивание дерева - потому что не продумана проверка результата?... но это отдельная история [хоть и небольшая] - но я тоже не проверяла итог на уникальность - ТС проверит если захочет по таким связям с обрывами и пустотами - по ним даже, полагаю, полноценный граф не описать [как уже указал выше Андрей VG ])
Изменено: JeyCi - 25 Авг 2018 18:26:23
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
VBA подвисает экспорт в csv при больших объемах
 
Цитата
Vsevolod написал:
tblArr = tbl.Range.Value
а через SQL пробовали ?? но на 2 млн. строк всё равно прописывает в txt долго - объём всё-таки... хотя у вас 20 тыс. ...
я на vbs из Access делаю такой логикой (можете адаптировать под свою структуру полей, переделать на макрос И строку подключения к Excel, не Access)... выходной файл пустой уже создан 11.txt - можете создавать в коде...
главное: это пример как взять запросом таблицу и Do-Loop'ом пробежать по Рекордсету, записывая записи рекордсета в txt-файл...
но в SQL-запросе * лучше заменить на названия своих полей (лучше для скорости работы провайдера БД Jet, который в XL) - я сократила для краткости, но выгрузку показала на примере своих полей для примера...
Код
Const FOR_APPENDING = 8

Set pCon = CreateObject("ADODB.Connection")
sFilename = "E:\NEW docs\myDB.accdb"
toFile="E:\NEW docs\11.txt"
pCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;Mode=16;DataSource=" & sFilename & ""

   sSQL = "SELECT * FROM [tbl]; " 
   set RS = pCon.Execute(sSQL)   

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.OpenTextFile(toFile,FOR_APPENDING)

Do While Not RS.EOF
    objFile.Write CStr(RS.Fields("TK").Value & ";" & RS.Fields("settlementDt").Value & ";" & VBCRLF)
    RS.MoveNext
Loop

objFile.Close
RS.Close
pCon.Close
Set RS = Nothing
Set pCon = Nothing

Изменено: JeyCi - 24 Авг 2018 10:32:53
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 
Цитата
Андрей VG написал: SQL Server не Access - временные индексы автоматически создавать не будет.
упс... чувствовала я подвох от MicroSoft - ещё не переходила на сервер... важный нюанс для перевода БД на серверные рельсы... значит все индексы ручками настраивать придётся...
***
и продублирую свой вопрос, затерявшийся в моих эмоциях  :oops:
Цитата
JeyCi написал: вопрос: такую рекурсивную конструкцию можно создать только на SQL Server 2014 или на 2012 тоже получится?
Андрей VG спасибо за примеры и введение в Графы... !
Изменено: JeyCi - 24 Авг 2018 10:05:47
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 
Цитата
Vsevolod написал:
По контактам мы объединяем все заявки в общую сущность "Клиент"  
продолжу свою мысль - раз ТС не даёт своих пояснений... Если вы хотите пользоваться удобствами Реляционных Структур (даже Сущность создаёте) - показали бы Схему вашей БД в той части откуда и куда и КАК вы связи настроили... а то вы жалуетесь что у вас связи рушатся, а нам гадай какие (исходя из целей ведения вашей БД) - что у вас там за связи и что за Сущность БЕЗ Ключей  8-0 ... - и может вообще др. подход оптимальнее, чем ваш...
даже цели  :D не совсем понятны: вы хотите проследить судьбу Клиента по смене его контактов? (он вам дал разрешение на собирание личной инфо о себе?)... или же вы всё-таки хотите проследить судьбу Заявки?...
p.s.
думаю без схемы БД и адекватно сформулированной сути ваших затруднений - сложно дать вам совета об Оптимизации... хотя по сути вы его уже получили: хотите мониторить Клиента - дайте ему Id (как primary key) - иначе вам придётся это делать в оперативке каждый раз как захотите хоть какую выборку по клиенту... выделяете его в объект для  мониторинга - так и создайте его Сущность - таблицу Клиентов... или делайте это каждый раз на лету... вам удобно?
p.p.s
вобщем судьбу контакта и судьбу заявки я вам прикладываю - (на примере из #3 - табл Отчёт не участвует) ... как и ДЛЯ ЧЕГО вы там хотите связи достать - не вникаю... а для мониторинга судьбы Клиента создавайте другую сущность... и желательно с пониманием (и вашим и помогающих по пояснениям от вас) природы ваших сущностей, связей Нужных (не нужных не надо), ваших целях (а не обрывком из контекста БД) И Целостности(!) вашей БД и ключей настроенных вами исходя из ваших целей...
(Только уточните у клиента согласен ли он на такую слежку за собой)...
==================
P.P.S МОДЕРАТОРАМ: слетают вложения, когда пишешь 2-й пост (в нём дублем появляется вложение из предыдущего своего - удаляешь - исчезает и из предыдущего поста)... не удаляешь - 2-й пост не опубликовывается...
Изменено: JeyCi - 24 Авг 2018 10:43:09
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 
Цитата
Максим Зеленский написал:
32-битный Excel вешает процессор надолго (что вообще непонятно, не должно так быть, наверное, пресловутые promises в List.Accumulate дают прикурить),
проверю, как доберусь до компа
Максим, ваш последний код работает нормально на таких условиях, зависает только то, что Андрей отметил...
Изменено: JeyCi - 24 Авг 2018 10:04:55
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 
Цитата
Vsevolod написал:
Пример на T-SQL правильно я понимаю, что сет данных выгружается куда-то,
там 1-ым шагом - просто создание тестовых данных... потом если разложить все Запросы по кусочкам (приложила пример в Access 1-5 шаг) - в принципе всё проглядывается (моё препарирование решения Андрей VG в предыдущем посте до 5-го шага)... но 6-7 шаг в Access не реализовать..
вопрос: такую рекурсивную конструкцию можно создать только на SQL Server 2014 или на 2012 тоже получится?
Изменено: JeyCi - 22 Авг 2018 19:49:46
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 

мне увиделось решение от Андрей VG на SQL так (во вложении без 6-7 шага):
1. отобрали уникальные контакты с пометкой в столбцы from-to join'ом (куда откуда передалось изменение)
2. [childs]: оставили лишь те записи где замены произошли ( from и to имеют разные значения che по строке)
3. оставили уникальные to из (2)
4. [roots]: отобрали из (1) те контакты, что без child'ов (исключив child'ов определённых в (3))
5. пронумеровали клиентов Id-шками (просто по порядку по счёту, как отсортированы в выборке)
6. запустили рекурсию для объединения child'ов с корнями. UNION'ом ??? объединили всех child'ов к корню ??
7. отобрали уникальных clientId's контакты - присоединив к результатам рекурсии таблицу cilentIds

получили: "клиентский Id - контакт"
вопрос1: как в результирующей таблице id-con мы поймём, к какой che этот контакт относится?)... ведь нумерация id понятна будет только sql'ю, т.к. он сам её делает...)) - а если нам надо все заявки увидеть по клиенту (даже если он регистрировался под разными контактами)?
========
вопрос2: так child'ы - это заявки или контакты? (по коду мне показалось - заявки che)

Изменено: JeyCi - 22 Авг 2018 19:53:43
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 
Цитата
Vsevolod написал: По контактам мы объединяем все заявки в общую сущность "Клиент"  простым Join таблицы. Но случаются ситуации, что человек в какой-то момент сменил контакт и у меня связи становятся не полными,
(о наболевшем)
, вопрос ТСу: Зачем создавать сущность без ключей (either primary or foreign) - она и получается, как неваляшка... моё имхо
у меня сразу появилось желание задать какой-нибудь clientId, что Андрей и реализовывает, правда в коде... чтобы не перегружать так код - можно ведь сразу ID клиента записать отдельным столбцом -- ФИ(О) само по себе будет более приемлемым идентификатором уникальности клиента в отличие от его контактов (хотя конечно однофамильцы и одноимёнцы тоже не исключаются)
и главное, что меня смущает - !? зачем вы задваиваете заявку при смене контакта - вносите изменение в поле контакта (при смене его и ещё живой заявке [неисполненной]) и живите дальше с последним рабочим контактом.. -- или вы собираете историю изменений контактов клиента??)) -- вы уполномочены на собирание такой инфо?.. лично я всегда стараюсь и советую не собирать мусор, а держать рабочие данные в состоянии адекватном текущему и только нужному (без лишнего) for Decision-making Purpose (руководствуясь расшифровкой аббревиатуры CASE - Computer Aided Software Engineering - перефразируя: зачем создавать приложение - хоть в xl, хоть на сервере - если оно не aid вам жить??)... а уже как вы выстроите систему без мусора - это Искусство DB-design - ... ) "Recycle-been" ("утилизацию отходов") как-то ведь можно внедрить в систему - чтобы не изобретать велосипед для ковыряния в мусоре... Администрирование БД какое-никакое ведИте... или чем у вас занимается Администратор или тот кто выполняет его функции... БД без админа, как child без root'а ... имхо
Изменено: JeyCi - 25 Авг 2018 18:26:59
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ Поиск вложенных связей
 
Цитата
Андрей VG написал: надо предварительно выродить граф в дерево.
И я подумаю на досуге...  8) граф в дерево - звучит интригующе... спасибо за пример...
но #8 - код на Серверном SQL, полагаю...  
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ загрузка JSON из файла
 
Цитата
Vsevolod написал:
считывая из API я JSON переконверчиваю в CSV
не надо - записывайте через запятую и оберните в квадратные скобки... и читайте как массив из json в PQ
1-ваш, 2-норм структура вашего для json
Изменено: JeyCi - 22 Авг 2018 20:18:11
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ загрузка JSON из файла
 
Цитата
Vsevolod написал:
скачивает по 50 строчек за раз данные и записывает в данный фаил с новой строки
неправильно!.. если вы хотите считывать 1 файл целиком, как json-структуру -- вам надо его ЦЕЛИКОМ оформить как json-структуру!.. прикладываю пример: разные json (простенькие) записала через запятую и оформила в квадратные скобки -- что есть синтаксисом JSON-разметки [массив] -- потом в PQ соответствующе распарсила...
p.s. можете оформить в фигурные скобки {ваши структуры через запятую И с ключом} -- но полагаю вам придётся задавать ключ(и) -- не усложняла... - оформила синтаксисом json в массив
p.p.s в вашем стартовом посте темы: JSON не понял ваши переносы на новые строки !.. соблюдайте структуру Json и всё получится
p.p.p.s ваш файл не смотрела - sorry неудобно (не на стационарном пк)
Изменено: JeyCi - 17 Авг 2018 19:42:24
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Мотивация. Характер. Путь. - (просто о сложном), Спасибо! тем, кто возвращается... и всем остальным, кто даёт нам силы...
 
Спасибо всем гимнастам, показавшим сегодня сальто с 3-мя винтами  ;) !!!
Россия взяла золото Team Men... с чем и Поздравляю !
Жаль Женскую спортивную гимнастику пропустила  :( - но думаю, девочек тоже есть с чем поздравить  :) - ВСЕХ !..  :idea: за смелость пойти в этот вид спорта, техническую ювелирность исполняемых элементов, и КАЖДОЕ благоприятное приземление ! Respect !! Спасибо за красоту, которую вы дарите, в той сложности, которую реализуете !
Изменено: JeyCi - 11 Авг 2018 19:22:53
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Ищу мануал по MSXML2.XMLHTTP и подобным запросам в интернет.
 
Цитата
Alemox написал:
так как не могу понять когда надо те же заголовки писать
для запроса ЛУЧШЕ с заголовками (хотя иногда проходит и без них)... какие обязательны и желательны в каких случаях - смотрите примеры на форуме... анализируйте, делайте выводы, пользуйтесь поисковиком ... если без заголовка не проходит вставьте заголовки...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Ищу мануал по MSXML2.XMLHTTP и подобным запросам в интернет.
 
Цитата
SuperCat написал:
(Ctrl+Shift+I),
по-моему F12 тоже подходит  8)  
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Мотивация. Характер. Путь. - (просто о сложном), Спасибо! тем, кто возвращается... и всем остальным, кто даёт нам силы...
 
Цитата
JeyCi написал:
а начинается всё, как всегда, с 1m   ...  винты - они всегда винты
к #10
видя такое ювелирное исполнение Полуторного Сальто Авербах с 1,5 Винтом  :oops: - появляется мечта...  :idea:
вчера показали на Eurosport Полуторное Сальто Вперёд с 2мя Винтами -   :)  появляется понимание КАК этот прыжок выполнить...  :idea:
Невероятно Несложно ... конечно, подготовка нужна... но даже увидеть эти обороты своими глазами с позиции спортсмена, выполняющего этот прыжок, - огрОмного стОит!!! ... - (различать различия)...
потом долгие тренировки...
и остаётся лишь Один Шаг До Цели -
- Чисто Погасить вход !...
... это и есть Путь к Совершенству... и мечте !.
=====================================
так и в программировании - путь к оптимизации, быстродействию и memory-efficiency... осилит только Идущий...
=====================================
поэтому
GLASGOW 2018 - ещё пару дней... MUST SEE EVENT ! - Eurosport никогда не спит  :) ... и этим очень помогает программистам... Спасибо !!! всем diver'ам, когда мы понимаем их прыжки... изящность, грация и ювелирность говорят сами за себя в их исполнении !!
- таким же должно быть исполнение хода логической мысли, который программист закладывает в каждый свой код написанный...
Изменено: JeyCi - 11 Авг 2018 18:29:50
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Протокол спортивных соревнований
 
Цитата
Shamsutdin.xxx написал:
не получается заблокировать на листе только ячейки в диапазоне А5:А8.
и не получится... можно защитить только лист целиком... можете в эти ячейки разместить ссылки на др. лист - на котором будут значения для этих ячеек - там менять сможете (можете тот лист сделать скрытым, чтобы исключить доступ к нему), а на защищённом листе будет отображение со ссылок но защищённое на данном листе...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Power Query. Распарсить List в составе сложной структуры json и расставить по местам, (как "ВПР" в соответствии с индексом вхождения в List и по месту номера недели в месяце)
 
удалось получить ускорение работы этого кода в составе более сложного - через использование Table.Buffer для таблицы с распарсенными строками И забуферивания также сложной трансвормации колонок... выводы тестирования
Изменено: JeyCi - 10 Авг 2018 09:32:14
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ: Странное поведение Refresh all DataFormat.Error: File contains corrupted data
 
Цитата
PooHkrd написал:
табличку со всяким приджойненным лучше загнать в оперативку.
МОЙ ВЫВОД:
не улучшилась скорость... полагаю, в моём случае потому что после JOIN - получается большой массив, который загнав в память, - получаем уменьшение свободной памяти для дальнейших операций...
НО мне удалось ещё улучшить время до 1 мин - за счёт забуферивания сложного TransformColumns... 1 мин радует больше, чем 2 мин   :)  :idea:
ТАКИМ ОБРАЗОМ улучшение времени работы кода достигнуто за счёт использования Table.Buffer:
1) после парсинга строковых значений
2) после сложной трансформации - как в этой моей ветке (когда только знакомилась с PQ)... - там только справочник, полный код сложнее с использованием того справочника....
Изменено: JeyCi - 10 Авг 2018 09:35:04
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ загрузка JSON из файла
 
Цитата
Андрей VG написал:
под рекурсией?
да, наверно перемудрила... просто на слуху застряло: "в PQ нет циклов, только рекурсия"... хотя по сути заполнение каждого each-того элемента по столбцу по одной схеме обработки каждой строки (но не совсем цикл, а общее правило для каждой строки в столбце) через Table.TransformColumns... ну вот как-то так  :) - после всех этих языков уже с русским проблемы...
Изменено: JeyCi - 6 Авг 2018 13:17:23
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Привести данные из 1С в нужный вид для сводной в ексель
 

в дополнение к #58 - можно ещё проще (без индексов)... и шапку дописать в конце (начиная с 9-й строки):

Код
let
    Source = Excel.CurrentWorkbook(){[Name="tbl"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type any}, {"Column4", type any}, {"Column5", type any}}),   
    head_away = Table.RemoveRows(#"Changed Type", 0, 2),
    newcol = Table.AddColumn(head_away, "Column6", each if [Column2]=null then [Column1] else null),
    filled=Table.FillDown(newcol, {"Column6"}),    
    #"Filtered Rows" = Table.SelectRows(filled , each ([Column2] <> null)),
    #"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each ([Column2] <> "ИТОГО:")),    
    n1=Table.Transpose(Table.FromList({"Дата", "Документ", "NOT", "Кол-во",  "Цена", "Номенклатура"})),    //УКАЗАТЬ ШАПКУ ! столбцы для удаления пометить любыми словами (потом по ним удалить)
    n2=Table.Combine({n1,#"Filtered Rows1"}),
    #"Promoted Headers" = Table.PromoteHeaders(n2),    
    #"Removed Columns" = Table.RemoveColumns(#"Promoted Headers" ,{"NOT"}) 
in
#"Removed Columns"

работает на именованном диапазоне таблицы tbl (как и #58)
для файла из #9
Изменено: JeyCi - 6 Авг 2018 13:02:06
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ загрузка JSON из файла
 
Цитата
Vsevolod написал:
можно ли как-то обработать такой фаил, где с каждой новой строки отдельный JSON
ну раскладываются же текстовики по строкам... примеры были на форуме... дальше обработка json-переменных по столбцу построчно -- уже всё нюансы каждой отдельной json-структуры... полагаю они у вас однотипны и тоже проблем с этим возникнуть не должно (по столбцу)... рекурсия по столбцу через each не должна вызывать проблем - с теми функциями которые это позволяют
Изменено: JeyCi - 5 Авг 2018 20:46:09
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Постоянно "ломаются" excel файлы
 
Цитата
Vsevolod написал:
Версия 2016  16.0.4639.1000 64-bit
простите, не имела с ним дело...
Цитата
Vsevolod написал:
Я сейчас все файлы перевел в xlsB
простите, не вспомню точно - но с ним тоже были какие-то особенности... кто-то его не любил (то ли 1С, то ли PowerPivot2013, то ли PowerQuery2013)... знающие поправят, если что... (сейчас не найду на форуме дебаты об этом)
Цитата
Vsevolod написал:
Макросы совершенно простые - обновление коннекток к PQ
вот это могут оказаться ещё те дебри для  XL - всё зависит от кодов и последовательностей обновления и переменных... что-то мне думается, что когда он открывается он всё равно запрос 1-й раз производит как-то чтобы вытянуть данные (в этом случае !! всё зависит от кода)... не знаю, может 2016-й без принудительного Refresh (при отключённом автоматическом) как-то особенно себя ведёт (лишь отражает лист сохранённый)... но могут быть нюансы и запросов... вам виднее... успехов
p.s.
тем более имеет место быть ваша VBA поймать ошибку обновления Connection - может на открытии с этим Connection и возникает неконтакт... имхо... если узнаете в чем там дело - отпишитесь please или в той или в этой ветке (всё может быть что они взаимосвязаны)
Изменено: JeyCi - 5 Авг 2018 20:38:31
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Привести данные из 1С в нужный вид для сводной в ексель
 
Цитата
Денис К написал: оперативная задача
насчёт основной шапки таблицы не заморачивалась... но оперативно - делала как-то так... потом copy-paste ручками под нужную шапку можете... у меня просто с шапкой проблем не было...
Принцип: Индексация с разницей в единицу и Join шапок по индексу на следующую строку. Потом FillDown постоты по строкам добавленного столбца.
Условие: задать Имя диапазона Таблицы (видно в Диспетчере имён).
ОГРАНИЧЕНИЯ: 1) подшапка - 1 строка, 2) разбор и выравнивание главной шапки не учтены (во вложенном файле)
Цитата
Денис К написал: во вложении исходный файл - ровно такой, каким мне его выдает 1С.
на основе ТЗ из #9... пока не осилю перечитать всю ветку
Код
let  
    Source = Excel.CurrentWorkbook(){[Name="tbl"]}[Content],  
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type any}, {"Column4", type any}, {"Column5", type any}}),  
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Column3"}),       
      
    //таблица  
    indexed = Table.AddIndexColumn(#"Removed Columns" , "rowId", 1),  
    indexed2 = Table.AddIndexColumn(indexed,"till", 2),  
        baseKeyed = Table.AddKey(indexed2,{"rowId"},false),  
  
    //отбор шапок (промежуточных)  
    heads = Table.SelectRows(indexed2, each [Column2]=null ),    
    //переименовать интересующие столбцы, чтобы исключить дубли названий столбцов при объединении и последующем раскрытии JoinColumn      
    headss = Table.RenameColumns(heads, {{"Column1","base"}, {"till","till_2"}}, MissingField.Ignore),      
        headsKeyed = Table.AddKey(headss,{"till_2"},false),  
  
    // спустить шапки в доп столбец на 1-й row  
    jn1 = Table.AddJoinColumn(baseKeyed, "rowId", headsKeyed  , "till_2","nx"),  
    #"Expanded nx" = Table.ExpandTableColumn(jn1, "nx", {"base"}, {"nx.base"}),  
  
    //отфильтровать Column2 по null - т.е. убрать строки с шапками  
    #"Filtered Rows" = Table.SelectRows(#"Expanded nx", each ([Column2] <> null)),  
  
    //распространить шапки в доп. столбце на пустоты  
    tbl=Table.FillDown( #"Filtered Rows" ,{"nx.base"}),  
  
    //удалить пользовательские столбцы (созданные для индексации)  
    #"Removed Columns1" = Table.RemoveColumns(tbl,{"rowId", "till"})  
  
in  
#"Removed Columns1" 
Изменено: JeyCi - 5 Авг 2018 20:10:43
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ: Странное поведение Refresh all DataFormat.Error: File contains corrupted data
 
 да Максим, я думаю: 2 минуты набегают в обращении к папке за 311 текстовиками (в которых json структуры)... их разбор... потом обращение ко 2-й папке за 165 текстовиками... потом JOIN календаря с data из 1-й папки и data из 2-й папки... ну JOIN'ы в принципе быстро... вся загрузка - считать из текстовиков... и ещё 4 папки - но там поменьше файлов json
p.s.
раньше делала напрямую из i'net... замечала что побыстрее... но сейчас при обращении столько раз (за каждым json) из PQ в i'net - что-то постоянно вываливается совет подключаться как Anonymous - и так все 500 раз  8-0  - поэтому через vba загружаю на комп и считываю папку...
- думаю, может дело в правах доступа - устанавливаю на книгу Organization, на внешний источник Public... но пока подключение напрямую к сайту вызывает диалог xl со мной ~500 раз... поэтому беру с папок...
p.p.s
в принципе это сделать за 1 день данных 1 раз - потом скидываю в Access для работы с этими данными... PQ - только взять (2 минуты на день - ~44,5 тыс строк) - хотя масштабировать ещё в 2р на др активы - уже думаю будет не очень удобно... но пару  минут в день - это ещё терпимо, полагаю... (более 5 дней data не хранятся на сайте - поэтому брать глубоко историю с сайта нет необходимости и возможности)
Изменено: JeyCi - 3 Авг 2018 11:15:05
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
PQ: Странное поведение Refresh all DataFormat.Error: File contains corrupted data
 
добралась...
справочник календаря из 53 строк - используется в 44 440 строках финальной таблицы:
st=Table.Buffer(st1) дал прирост 25 сек (после части parse label)
2 мин 25 сек без него и 2 мин с Table.Buffer
p.s.  
всё равно 2 мин долговато... думаю на Power BI (по ссылке из #14) - результаты могут быть получше...
но я пока на office2010 win7
Изменено: JeyCi - 3 Авг 2018 10:43:19
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Обновление остатков поставщика
 
на SQL - INNER JOIN ON артикул (если 1 артикул на 1 товар)... - получите вашу 1000 обновлённую... LEFT(RIGHT) JOIN - можете получить в придачу к ним и те которых ранее не было (если появились новые)
p.s. ознакомьтесь с Правилами Форума !!!
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 99 След.
Наверх