Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
[ Закрыто] Посчитать количество строк в .csv файле
 
Добрый день.
Цитата
chopper написал:
При этом желательно обойтись без открытия файла.
Загрузите его в Power Query, потом считать строки
Power Query. Установка language file Notepad++ для подсветки синтаксиса языка «M»
 
andrew34, спасибо, сегодня попробую заново разобраться.
Power Query. Установка language file Notepad++ для подсветки синтаксиса языка «M»
 
Jungl, спасибо. Да по этой статье тоже пробовал. Не работает автозавершение
Power Query. Установка language file Notepad++ для подсветки синтаксиса языка «M»
 
Хочу научиться пользоваться расширенным редактором в Power Query. Первый раз в жизни установил Notepad++, и как мне кажется правильно добавил файл согласно ссылки. Но не подсказывает функции и их нет в списке. Как разобраться, что не так я сделал? Или есть другой инструментарий для помощи в написании кода?
Power Query - объединить значение из 2 столбцов
 
Цитата
dennn написал:
Нашел только как с удалением столбцов. А как без удаления?
Power Query - объединить значение из 2 столбцов
 
Еще можно просто объединить столбцы. Тут возможны два варианта, с удалением исходных столбцов (вкладка "преобразование" и без(вкладка "добавить столбец").
Power Query. Настройка фильтрации по ключевым словам - Table.SelectRows.
 
Добрый день.
Как правильно написать код используя функцию  - fnCompareGroups? Добавляю условный столбец при условии, что текст в нескольких столбцах содержит один и тот же ключ1.
Написал так, вроде работает.
Код
AddПризнак = Table.AddColumn(Types, "Признак",
   each if fnCompareGroups({"ключ1"}, [Column1]) 
   or fnCompareGroups({"ключ1"}, [Column2]) 
   or fnCompareGroups({"ключ1"}, [Column3])
   then "Признак1" else ""),

Но теперь мне нужно добавить еще одно условие на присутствие в тексте ключ2 и присвоить  Признак2. Как то все очень громоздко получается. А как пользоваться скобками "(), [], {}" для сокращения кода не могу разобраться. Помогите поправить код и если не затруднит киньте ссылку, где про это все рассказано.
Дайте ссылку на хорошую литературу по Power Query (НА РУССКОМ) пожалуйста, Заранее спасибо
 
Спасибо! Я вот как раз сейчас с текстовыми функциями пытаюсь разобраться. Сложно для меня, в английском полный ноль
Дайте ссылку на хорошую литературу по Power Query (НА РУССКОМ) пожалуйста, Заранее спасибо
 
Jack Famous, я вроде много искал, но на русском учебника не нашел. Тоже бы прочитал. Так что если найдете учебник, то поделитесь пожалуйста. А так вот здесь есть подборка использования PQ.
Дайте ссылку на хорошую литературу по Power Query (НА РУССКОМ) пожалуйста, Заранее спасибо
 
Добрый день. Справку уже смотрели?
Слияние таблиц план факт в Power Query
 
В факте есть "Елеватор 1 -  Ячмінь ярий "  , но в плане  его нет.  Если его подставлять, то будет 19 строка, если это не опечатка.
Power Query. Настройка фильтрации по ключевым словам - Table.SelectRows.
 
Максим Зеленский, спасибо большое. Настроил, все работает с формулой fnCompareGroups. Буду с ней теперь пробовать. Удобно, что не нужно заходить в PQ, изменил ключи и сразу в сводке видно. А у меня как раз много фильтраций по тексту.
Цитата

Кроме того, вы можете использовать скобки в формуле для обозначения логики. например так (много строк необязательно, для наглядности)
А вот с этим, так и не разобрался, поэтому код у меня громоздкий и не читабельный получается.

Цитата
Должны остаться строки  обязательно содержащие ключ1 или ключ2.  И из них  только строки с вхождением ключь3 или ключ4 или ключ5. Но если текст содержит ключ6 или ключ 7 то эти строки должны быть удалены.
Если это про прикрепленную мною картинку, то она не целиком относится к сказанному. Я сначала фильтрую вообще весь текст, чтобы остался только одной тематики. А потом при помощи этой формулы создаю дополнительные условные столбцы. Ну например, если есть это и это слово то поле - Название1, если есть другие ключи, то поле Название2 и тд.
Power Query. Настройка фильтрации по ключевым словам - Table.SelectRows.
 
Добрый вечер.
Цитата
но лучше приложить хотя бы простой пример
Есть, но там особо смотреть не на что(рис для условного солбца). Пока она выглядит вот как на рис. Передаю в PQ табличку E10:E11. Но я вот как раз сейчас продумываю, как мне удобней сделать. Завтра смогу дать файлом с учетом ваших поправок.
Цитата
а ключ1 всегда в нижнем регистре?
Наверное да. Текст может быть написан и капсом и вперемежку. Я поэтому и перевожу все в нижний регистр.

Код

Table.SelectRows(#"Измененный тип", each Text.Contains([Текст], (
    (text = key1) or 
    (text = key2)
) and 
(
    (
        (text = key3) or 
        (text = key4) or 
        (text = key5)
    ) and 
    not (
    (text = key6) or 
    (text = key7)
    )
), Comparer.OrdinalIgnoreCase))


Правильно понял, вот так должен выглядеть мой вариант? Вот я сегодня с этим и помучился. Понимаю, что как то должно быть по другому, как только скобки не ставил.
Изменено: Shima - 13.09.2017 16:45:33
Power Query. Настройка фильтрации по ключевым словам - Table.SelectRows.
 
Пытаюсь отфильтровать в таблице столбец с текстом. Пробовал по разному, вот последний вариант, но он не верный.

Код
Table.SelectRows(#"Измененный тип", each Text.Contains(Text.Lower([Текст]), "ключ1") or Text.Contains(Text.Lower([Текст]), "ключ2")
 and Text.Contains(Text.Lower([Текст]), "ключ3") or Text.Contains(Text.Lower([Текст]), "ключ4") or Text.Contains(Text.Lower([Текст]), "ключ5")
 and not Text.Contains(Text.Lower([Текст]), "ключ6") or Text.Contains(Text.Lower([Текст]), "ключ7"))

Что хочу получить.  Должны остаться строки  обязательно содержащие ключ1 или ключ2.  И из них  только строки с вхождением ключь3 или ключ4 или ключ5. Но если текст содержит ключ6 или ключ 7 то эти строки должны быть удалены.

Как делаю. В Excel составил табличку которая набирает текст формулы по ключам с  минус-словам. Ее импортирую в PQ запросом, копирую руками и вставляю в код. Неудобно что для этого нужно заходить и выходить из PQ. Можно ли как то сделать, чтобы запрос сам забирал и подставлял ключи в код из этого запроса? Как бы вы поступали в таких случаях. Может есть другие варианты.

С синтаксисом сам не смог разобраться. С английским вообще плохо, а машинный перевод не всегда понятен. Когда простая фильтрация более менее получается, а вот кода посложней и нужно использовать много операторов и, или, если еще и с разными столбцами то беда.
Еще вопрос по теме. В ячейке иногда по несколько тысяч символов. Но показывает он чуть более 1000, в строке формул также не весь текст. Причем в видимой части ключа в нем нет. Но я проверял, что фильтрует верно так как в исходном тексте ключ присутствует. Мне интересно он весь текст "просматривает" или есть ограничения, как в Excel?
Общий список из двух с автоматическим добавлением новых значений (Power Query?)
 
Может быть вам подойдет вот такой порядок действий? Ну конечно, с учетом ваших особенностей.
Power Query. Трансформация таблицы и построение сводной.
 
Андрей VG, прошу прощения, вопрос снят. Я перед трансформацией продублирую запрос, один оставлю только с пустыми контактами, а в другом их уберу вообще. Далее меня путаница не пугает. В основном я ошибался с этими пустыми строками. После трансформации объединю заново. Максим Зеленский, да это всегда без изменений, меняется только кол-во. Но повторю, что пока это перестало быть проблемой. Потом посмотрю походу, что да как, может сам что придумаю. Еще раз спасибо.
Power Query. Трансформация таблицы и построение сводной.
 
Добрый день.
Цитата
что вы хотите получить в результирующей таблице запроса?
В исходном файле все контакты указаны в строке. Мне нужно трансформировать таблицу так, что бы контакты  были в столбце. В результате запрос должен выглядеть, как на листе "Результат_промежуточный". Так и должно быть, на мой взгляд. Только нужно убрать все строки где в "Описание" - основной контакт, а в поле "Контакт" - пусто. За исключением тех случаев, когда у компании все поля контактов пустые. Я в примере в столбце "Проверка" прописал формулой, каких строк не должно быть. Для меня сложность в том, что в реальности запрос будет к папке с CSV файлами. Файлы имеют одинаковую структуру, но с разным количеством столбцов - контакт+описание. Помощь нужна в этом примере, а дальше, я думаю смогу применить решение к папкам.
Цитата
что это означает? Почему тогда в компания2 - это основной контакт?
Вас, наверное, сбил с толку "Основной контакт". Не обращайте внимание на название и его смысл. Я его назвал так потому, что это поле, самом по себе является признаком. К нему нет текстового описания, во всех других случаях для контакта имеется это поле(может быть заполнено, а может и нет. может содержать контакты). Это видно в исходнике.
Цитата
А главное, зачем вести таблицу в такой структуре?
Эта только одна из таблиц, которая использует модель данных Power Pivot. Ничего внятного, какой она должна быть, сказать не могу. Сам пока не знаю. Данных очень много, ищу связи между ними. Хотя задача, лично для меня понятна - предложить рабочую гипотезу о том, что контактам обладающим неким набором признаков будет интересно конкретное ком/предложение. Или, точно не заинтересует.
Power Query. Трансформация таблицы и построение сводной.
 
Есть таблица в примере (лист "Исходник"). На самом деле содержит несколько тысяч строк. В ней нужно сделать Unpivot контактов и описания к ним. После этого построить сводную с возможностью сортировки по любому из параметров.

Основной контакт без описания, все остальные - контакт+описание. Бывает так, что в контакте пусто, но есть описание и в нем могут быть контакты (ничего страшного, это ошибки заполнявшего. В последующем я их вытащу). Не может быть так, что заполнен следующий контакт в строке без заполнения предыдущего. Кол-во контактов определяется PQ по наибольшей заполненной строке и может содержать несколько десятков.

Трансформировал таблицу, но есть неточности. Отметил на листе  - "Результат_промежуточный" Помимо этого, мне кажется, что у меня как-то все не оптимально. Слишком много одинаковых шагов. Если ли другое решение, которое автоматизирует процесс? Так как если контактов много, то можно ошибиться.
Сводная неверно сортирует по параметрам и неправильно высчитывает кол-во контактов. Это важно, так как в дальнейшем из описания к контактам будут вытащены ключевые слова и по ним созданы доп/поля.
Excel 2016 и Power Query
 
Максим Зеленский, спасибо. А то я думал, может я где-то косячу. Все в новинку
Excel 2016 и Power Query
 
Спасибо, с сортировкой понял.
С PP_utilities такая история. Действительно она загрузилась, когда положил ее просто в AddIns. Но при закрытии и открытии Excel заново, она не появляется на ленте. Хотя и находится в активных надстройках. Опять указываю путь и она появляется. У меня Excel 2013. Также на вижу на ленте во вставке Power View.
Excel 2016 и Power Query
 
Максим Зеленский, да я это понял. Не понятно почему в разных случаях, когда строишь сводную из Power Pivot, то в одном случае  Excel сам добавляет поля дата-месяц и дата-год, а в другом их приходится создавать. И во втором варианте, в  срезе сортировка месяцев по алфавиту, а не по порядку.
Еще вопрос по PP. Встретил ролик, где вы рекомендуете поставить Power Pivot Utilities. Попробовал поставить, не получается. Вроде все делаю, как написано но он не видит файл с расширением .xlam
Скрытый текст
Power Qwery - подгружать один и тот же файл с разными названиями
 
Добрый день. Сам недавно узнал о Power Query. Поделюсь ссылками, которые должны вам помочь. Раз и два. В комментариях ко второму видео есть еще полезные ссылки, а вот к нему примеры. Неплохая подборка собрана  под спойлером#104. У вас в названии ошибка Power Qwery/Query.
Excel 2016 и Power Query
 
Так а что не так? Все же работает, оба варианта в самом Power Query показывают кол-во строк.  А то что не выводит на лист, так оно по большому счету и не нужно. В самом ведь файле, если данные загружены в модель данных, видно и запросы и кол-во строк. Да и не трудно мышкой навести на запрос. Неудобен модальный режим Power Query, пока ты в нем, то ничего посмотреть в Excel не можешь. Я вот пока другого варианта не нашел, как "пробрасывать" туда все что нужно через лист Parameters. Может я чего не понимаю.

Можно вопрос не по теме. Когда строишь сводные из данных модели PV, то группировки не активны. В частности группировка по дате. Но у меня до сегодняшнего дня, все было нормально. Он автоматом определял дату и создавал поля дата-год и дата-месяц. А вот сегодня не хочет. Я проверил, может что не так с данными даты. Так нет подгрузил их к одной из таблиц, там все нормально работает. И срезы и группировка. На форуме подходящий ответ не нашел, но помню, что где-то раньше попадался ответ.

Не разобрался я почему он в одном случае распознает месяц и год, а во втором нет. Гипотеза такая, когда загружаешь папки через интерфейс PQ, то он распознает, а если через формулы то нет. Короче просто добавил поля FORMAT([Дата];"YYYY") FORMAT([Дата];"MMM")
Изменено: Shima - 02.09.2017 09:47:07
Power Query. Импорт нескольких папок файлов CSV.
 
Мне особой нужды нет их выгружать на лист. Только подключение, некоторые в модель данных. Да у меня и не влезет на лист, есть файлы больше 1млн строк и по 70 столбцов. Мне их нужно отфильтровать, а что останется уже в модели планирую анализировать и делать сводные.
Цитата
Максим Зеленский написал:
там же можете сделать фильтр по Date Modified, брать только последние.
Я неправильно вопрос задал. Дубли нужно удалить те, которые есть в новом и старом файле. Из них оставить те, что есть в новом(идентификатор ID, другие столбцы могут поменяться). Но бывает и так, что уники есть только в старых, а в новых их нет. Тогда удалять не нужно.

Добавлю еще что заметил при выгрузке .csv. У меня в некоторых столбцах текст. Так вот когда в нем, есть непонятные символы, какие то значки, даже программный код встретился, то столбцы сбиваются. Я разбираться с этим не стал, просто удалил. Такого немного было.

Вообще Power Query штука прикольная. Просто не ожидал, как все здорово. В моем случае вообще великолепно, когда надо много ненужного профильтровать.
Вот сделал пример для импорта, с вашей и Андрея VG помощью. Может новичкам, типа меня пригодится.
Power Query. Импорт нескольких папок файлов CSV.
 
Итого. Пока общий объем загруженных папок  примерно 1Гб, Excel-файл с запросами - 233мб. Это я еще Сводные таблицы не строил. Но пока он себя довольно бодро чувствует. Есть какие-то ограничения, что-то даже не по себе от такого. Раньше уже на 30мб не работал
Power Query. Импорт нескольких папок файлов CSV.
 
Максим Зеленский, фух, все заработало. Сделал все по вашему коду, но добавил еще на втором шаге "SelectRows = Table.SelectRows(Source, each ([Extension] = ".csv"))," на всякий случай. Иногда в папки попадают и .txt. Еще такая странность. Одни файлы он нормально импортирует по "Encoding=1251, QuoteStyle=QuoteStyle.None", а на другие не в какую не хочет. Сбивается на каких нибудь строках и перемешивает столбцы. Кол-во строк удваивается. Причем бывает сразу и не заметишь этого. В первых строках, что видно, все хорошо. Вот тут табличка с подсчетам строк помогает. В общем я заменил все на "Encoding=1251, QuoteStyle=QuoteStyle.Csv". Пока вроде без сбоев грузит. Но в каком-то файле был и Encoding=65001. Хотя все файлы выгружаются из одной программы.
Еще такой вопрос про удаление дублей. Как можно сделать, чтобы удалялись старые а новые сохранялись? Ориентироваться можно по Date modified
Excel 2016 и Power Query
 
У меня все выводит в таблицу.

Код
//у меня так работает
let
    source = Record.ToTable(#sections[Section1]),
    onlyTable = Table.SelectRows(source, each [Value] is table),
    rowCount = Table.TransformColumns(onlyTable, {"Value", Table.RowCount})
in
    rowCount


/* 
так не работает, пишет что Expression.Error: Имя "Таблица1" не распознано. Убедитесь в том, что оно написано верно.
let
    source = Record.ToTable(#sections[Section1]),
    onlyTable = Table.SelectRows(source, each [Value] is table),
    rowCount = Table.TransformColumns(onlyTable, {"Value", Table.RowCount}),
    test = if Table.IsEmpty(Таблица1) then #table({},{}) else rowCount 
in
    test 
*/

Изменено: Shima - 31.08.2017 05:28:10
Excel 2016 и Power Query
 
Добрый день. Спасибо, то что нужно получилось.
Цитата
Андрей VG написал:
А вы уверены, что в Power Query результаты всех запросов только - таблицы?
Нет конечно. Я до этого момента вашим примером Source = Table.RowCount(Запрос1) пользовался. Создавал под каждый запрос или просто создавал запрос - считать строки. Вот и подумал, что скорее всего как-то можно собрать все данные в одну таблицу. Попытался сам сделать, но ничего не вышло. Спасибо.
Excel 2016 и Power Query
 
Андрей VG, а можно сделать так, чтобы запрос2 возвращал кол-во строк не только запроса1, но запроса3, 4, 5и тд, если они есть? Очень неудобно не видеть результата, когда работаешь со многими запросами, удаляешь дубли, фильтруешь несколько баз. Можно ли сделать запрос, который бы собирал информацию из других запросов в виде таблицы?
Power Query. Импорт нескольких папок файлов CSV.
 
Максим Зеленский, огромное спасибо за быстрый ответ. Буду разбираться. Вариант хардкорнее я нашел . Но я не программист нисколько и не смог разобраться, как вы это делаете? Попробовал в конце кода потренироваться, но пока для меня это сложно. Не могу понять как подставлять формулы. Не по памяти же их все вводить.
Код
let
    path = Excel.CurrentWorkbook(){[Name="Данные"]}[Content]{0}[Column1],
    files = Folder.Files(path),
    csvFiles = Table.SelectRows(files, each Text.Lower([Extension])=".csv")[[Name],[Content]],
    toDate = (this as text) =>
   let
       text = Text.Range(this, 0, 10),
       parts = Text.Split(text, "_"),
       return = #date(Number.From(parts{0}),Number.From(parts{1}),Number.From(parts{2}))
   in
       return,

    csvData = Table.TransformColumns(csvFiles, { 
   {"Name", each toDate(_)},
   {"Content", each Table.PromoteHeaders(Csv.Document(_,[Delimiter=";",Encoding=1251])),type table}
   }),
    toTable = Table.ExpandTableColumn(csvData, "Content", {"t обратки", "t подачи", "t1", "t2", "Время"}),
    return = Table.TransformColumnTypes(toTable,{{"Name", type date}, {"t обратки", type number}, {"t подачи", type number}, {"t1", type number}, {"t2", type number}, {"Время", type time}}),
    пример = Table.AddColumn(return, "Пример", each [t обратки]*[t подачи]),
    #"Измененный тип" = Table.TransformColumnTypes(пример,{{"Пример", Int64.Type}})
in
    #"Измененный тип"


Еще раз спасибо, а то я уже кучу времени убил. Находил много вариантов, но как то все не то.
Изменено: Shima - 29.08.2017 16:23:26
Страницы: 1 2 След.
Наверх