содржина

Понекогаш има ситуации кога однапред не се знае точно колку и кои редови треба да се увезат од изворните податоци. Да претпоставиме дека треба да вчитаме податоци од текстуална датотека во 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

Оставете Одговор