змест

Часам узнікаюць сітуацыі, калі загадзя невядома, колькі менавіта і якія радкі трэба імпартаваць з зыходных дадзеных. Дапусцім, нам трэба загрузіць дадзеныя з тэкставага файла ў Power Query, што, на першы погляд, не ўяўляе вялікай праблемы. Складанасць у тым, што файл рэгулярна абнаўляецца, і заўтра ў ім можа быць іншая колькасць радкоў з дадзенымі, загаловак з трох, а не з двух радкоў і г.д.:

Імпарт плаваючага фрагмента ў Power Query

Гэта значыць, мы не можам загадзя з упэўненасцю сказаць, з якога радка і колькі менавіта радкоў трэба імпартаваць. І гэта праблема, бо гэтыя параметры жорстка прапісаны ў М-кодзе запыту. А калі зрабіць запыт для першага файла (імпартуючы 5 радкоў, пачынаючы з 4-га), то з другім ён ужо не будзе карэктна працаваць.

Было б выдатна, калі б наш запыт мог сам вызначаць пачатак і канец «плываючага» тэкставага блока для імпарту.

Рашэнне, якое я хачу прапанаваць, заснавана на ідэі, што нашы даныя ўтрымліваюць некаторыя ключавыя словы або значэнні, якія можна выкарыстоўваць у якасці маркераў (функцый) пачатку і канца патрэбнага нам блока даных. У нашым прыкладзе пачаткам будзе радок, якая пачынаецца са слова SKU, а канец радок са словам Цэна. Гэтую праверку радка лёгка рэалізаваць у Power Query з дапамогай умоўнага слупка - аналага функцыі IF (КАЛІ) у Microsoft Excel.

Давайце паглядзім, як гэта зрабіць.

Спачатку давайце загрузім змесціва нашага тэкставага файла ў Power Query стандартным спосабам - праз каманду Дадзеныя – Атрымаць даныя – З файла – З тэкставага/CSV-файла (Дадзеныя – Атрымаць даныя – З файла – З тэкставага/CSV-файла). Калі ў вас усталяваны Power Query як асобная надбудова, то адпаведныя каманды будуць на ўкладцы Запыт на харчаванне:

Імпарт плаваючага фрагмента ў Power Query

Як заўсёды, пры імпарце можна выбраць сімвал падзельніка слупкоў (у нашым выпадку гэта табуляцыя), а пасля імпарту можна выдаліць аўтаматычна дададзены крок мадыфікаваны тып (Зменены тып), таму што нам яшчэ занадта рана прысвойваць тыпы дадзеных слупкам:

Імпарт плаваючага фрагмента ў Power Query

Цяпер з камандай Даданне слупка - Умоўны слупок (Дадаць слупок — Умоўны слупок)давайце дадамо слупок з праверкай двух умоў – у пачатку і ў канцы блока – і адлюстраваннем любых розных значэнняў у кожным выпадку (напрыклад, лікаў) 1 и 2). Калі ні адна з умоў не выканана, то вывесці нуля:

Імпарт плаваючага фрагмента ў Power Query

Пасля націску на кнопку OK атрымліваем наступную карціну:

Імпарт плаваючага фрагмента ў Power Query

Зараз пяройдзем да ўкладкі. Пераўтварэнне і выбраць каманду Запаўненне - Уніз (Пераўтварэнне - Запаўненне - Уніз) – нашы адзінкі і двойкі пацягнуцца калонай:

Імпарт плаваючага фрагмента ў Power Query

Ну а потым, як вы можаце здагадацца, вы можаце проста адфільтраваць адзінкі ва ўмоўным слупку - і вось наша жаданая частка дадзеных:

Імпарт плаваючага фрагмента ў Power Query

Засталося толькі падняць першы радок да загалоўка з дапамогай каманды Выкарыстоўвайце першы радок у якасці загалоўкаў таб Галоўная (Дадому - выкарыстоўваць першы радок у якасці загалоўкаў) і выдаліце ​​непатрэбны больш умоўны слупок, пстрыкнуўшы правай кнопкай мышы на яго загалоўку і выбраўшы каманду Выдаліць слупок (Выдаліць слупок):

Праблема вырашана. Цяпер пры змене дадзеных у зыходным тэкставым файле запыт будзе самастойна вызначаць пачатак і канец «плавае» фрагмента патрэбных нам дадзеных і кожны раз імпартаваць правільную колькасць радкоў. Безумоўна, гэты падыход таксама працуе ў выпадку імпарту файлаў XLSX, а не TXT, а таксама пры імпарце ўсіх файлаў з папкі адначасова камандай Дадзеныя – Атрымаць даныя – З файла – З папкі (Дадзеныя — Атрымаць даныя — З файла — З папкі).

  • Зборка табліц з розных файлаў з дапамогай Power Query
  • Рэдызайн крыжаванай табліцы ў плоскую з дапамогай макрасаў і Power Query
  • Пабудова дыяграмы Ганта праекта ў Power Query

Пакінуць каментар