Saznajte kako da kombinujete više izvora podataka (Power Query)

Primenjuje se na
Excel za Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

U ovom uputstvu možete da koristite Uređivač upita programskog dodatka Power Query da biste uvezli podatke iz lokalne Excel datoteke koja sadrži informacije o proizvodu i iz OData feeda koji sadrži informacije o porudžbini proizvoda. Izvršićete korake transformacije i agregacije i kombinovaćete podatke iz oba izvora kako biste kreirali izveštaj "Ukupna prodaja po proizvodu i godini".   

Da biste izvršili ovo uputstvo, potrebna vam je radna sveska "Proizvodi ". U dijalogu Sačuvaj kao, datoteci dajte ime Proizvodi i porudžbine.xlsx.

1. zadatak: Uvoz proizvoda u Excel radnu svesku

U ovom zadatku uvozite proizvode iz datoteke "Proizvodi i Orders.xlsx (preuzete i preimenovane iznad) u Excel radnu svesku, podignete nivo redova na naslove kolona, uklonite neke kolone i učitate upit u radni list.

1. korak: Povezivanje sa Excel radnom sveskom

  1. Kreirajte Excel radnu svesku.
  2. Izaberite podatke>Preuzmite podatke>iz datoteke>iz radne sveske.
  3. U dijalogu " Uvoz podataka " potražite i pronađite Products.xlsx datoteku koju ste preuzeli, a zatim izaberite stavku "Otvori".
  4. U oknu " Navigator " kliknite dvaput na tabelu "Proizvodi ". Pojavljuje se Power Query uređivač.

2. korak: Ispitivanje koraka upita

Power Query podrazumevano automatski dodaje nekoliko koraka kako bi vam olakšao. Da biste saznali više, pregledajte svaki korak u odeljku Primenjeni koraci u oknu " Postavke upita ".

  1. Kliknite desnim tasterom miša na korak " Izvor" i izaberite stavku "Uredi postavke". Ovaj korak je kreiran kada ste uvezli radnu svesku.
  2. Kliknite desnim tasterom miša na korak za navigaciju i izaberite stavku "Uredi postavke". Ovaj korak je kreiran kada ste izabrali tabelu u dijalogu "Navigacija ".
  3. Kliknite desnim tasterom miša na korak " Promenjeno tipovanje " i izaberite stavku "Uredi postavke". Ovaj korak je napravio Power Query koji je izveo tipove podataka za svaku kolonu. Kliknite na strelicu nadole sa desne strane polja za formulu da biste videli celu formulu.

3. korak: Uklanjanje drugih kolona kako bi se prikazale samo bitne kolone

U ovom koraku treba da uklonite sve kolone osim kolona IDProizvoda, ImeProizvoda, IDKategorije i KoličinaPoJedinici.

  1. U pregledu podataka izaberite kolone "ID proizvoda","ImeProizvoda", "ID kategorije" i "KoličinaPoJedinici " (koristite kombinaciju tastera Ctrl+klik ili Shift+klik).
  2. Izaberite stavku "Ukloni kolone>" Ukloni druge kolone.
    Sakrivanje drugih kolona

4. korak: Učitavanje upita o proizvodima

U ovom koraku učitavate upit "Proizvodi " u Excel radni list.

  • Izaberite stavku "Početak>","Zatvori & učitavanje". Upit se pojavljuje na novom Excel radnom listu.

Rezime: Power Query koraci kreirani u 1. zadatku

Dok u programskom dodatku Power Query obavljate aktivnosti vezane za upite, u oknu "Postavke upita" kreiraju se i navode koraci upita, na listi "Primenjeni koraci". Za svaki korak postoji odgovarajuća Power Query formula, poznata i pod nazivom „M“ jezik. Više informacija o Power Query formulama potražite u članku "Pravljenje Power Query formula u programu Excel.

Zadatak Korak upita Formula
Uvoz Excel radne sveske Izvor = Excel.Workbook(File.Contents("C:\Products and Orders.xlsx"), null, true)
Izaberite tabelu "Proizvodi" Navigacija = Izvor{[Stavka = "Proizvodi",Vrsta = "Tabela"]}[Podaci]
Power Query automatski otkriva tipove podataka kolona Promenjen tip = Table.TransformColumnTypes( Products_Table,{{"ProductID", Int64.Type}, {"ProductName", type text}, {"SupplierID", Int64.Type}, {"CategoryID", Int64.Type}, {"QuantityPerUnit", type text}, {"UnitPrice", type number}, {"UnitsInStock", Int64.Type}, {"UnitsOnOrder", Int64.Type}, {"ReorderLevel", Int64.Type}, {"Discontinued", type logical}})
Uklanjanje drugih kolona kako bi se prikazale samo bitne kolone Uklonjene druge kolone = Table.SelectColumns(FirstRowAsHeader,{"ProductID", "ProductName", "CategoryID", "QuantityPerUnit"})

2. zadatak: Uvoz podataka o porudžbini iz OData feeda

U ovom zadatku uvozite podatke u Excel radnu svesku iz uzorka Northwind OData feeda na http://services.odata.org/Northwind/Northwind.svc, proširujete Order_Details tabelu, uklanjate kolone, izračunavate ukupnu vrednost reda, transformišete datum porudžbine, grupišete redove po ID-u proizvoda i godini, preimenujete upit i onemogućavate preuzimanje upita u Excel radnu svesku.

1. korak: Povezivanje sa OData feedom

  1. Izaberite podatke>Preuzmite podatke>iz drugih izvora>iz OData feeda.
  2. U dijalogu OData feed unesite URL za Northwind OData feed.
  3. Izaberite dugme U redu.
  4. U oknu "Navigator " kliknite dvaput na tabelu "Porudžbine ".

2. korak: Proširivanje Order_Details tabele

U ovom koraku treba da proširite tabelu Detalji_porudžbine koja je povezana sa tabelom Porudžbine da biste kombinovali kolone IDProizvoda, CenaPoJedinici i Količina iz tabele Detalji_porudžbine u tabeli Porudžbine. Operacija Proširivanje kombinuje kolone iz srodne tabele u tabeli teme. Kad se upit pokrene, redovi iz srodne tabele (Order_Details) kombinuju se u redovima sa primarnom tabelom (Porudžbine).

U programskom dodatku Power Query kolona koja sadrži srodnu tabelu u ćeliji ima vrednost "Zapis" ili "Tabela". Takve su takozvane strukturirane kolone. Zapis ukazuje na jedan srodni zapis i predstavlja relaciju jedan-prema-jedan sa trenutnim podacima ili primarnom tabelom. Tabela ukazuje na povezanu tabelu i predstavlja relaciju jedan-prema-više sa trenutnom ili primarnom tabelom. Strukturirana kolona predstavlja relaciju u izvoru podataka koji ima relacioni model. Na primer, strukturirana kolona ukazuje na entitet sa povezivanjem sporednog ključa u OData feedu ili relaciju sporednog ključa u SQL Server bazi podataka.

Kada proširite tabelu Order_Details , tri nove kolone i dodatni redovi dodaju se u tabelu "Porudžbine ", po jedan za svaki red u ugnežđenoj ili srodnoj tabeli.

  1. U pregledu podataka pomerite se horizontalno do kolone Order_Details .

  2. U koloni Order_Details izaberite ikonu za proširivanje (Razvij ).

  3. Na padajućem meniju Proširivanje:

    1. Izaberite stavku (Izaberi sve kolone) da biste obrisali sve kolone.

    2. Izaberite IDProizvoda, cenu po jedinici i količinu.

    3. Izaberite dugme U redu.
      Proširivanje veze tabele „Detalji_porudžbine“

      Napomena

      U programskom dodatku Power Query možete da proširite tabele povezane iz kolone i skupite kolone povezane tabele pre proširivanja podataka u tabeli teme. Više informacija o tome kako da izvršite agregatne operacije potražite u članku Agregacija podataka iz kolone.

3. korak: Uklanjanje drugih kolona kako bi se prikazale samo bitne kolone

U ovom koraku uklanjate sve kolone osim kolona DatumPorudžbine, IDProizvoda, CenaPoJedinici i Količina

  1. U Pregledu podataka izaberite sledeće kolone:

    1. Izaberite prvu kolonu, IDPorudžbine.
    2. Shift+klik na poslednju kolonu, Špediteri.
    3. Ctrl+klik na kolone DatumPorudžbine, Detalji_porudžbine.IDProizvoda, Detalji_porudžbine.CenaPoJedinici i Detalji_porudžbine.Količina.
  2. Kliknite desnim tasterom miša na izabrano zaglavlje kolone i izaberite stavku "Ukloni druge kolone".

4. korak: izračunavanje zbira reda za svaki Order_Details red

U ovom koraku kreirate prilagođenu kolonu radi izračunavanja zbira reda za svaki red Detalji_porudžbine.

  1. U prikazu podataka izaberite ikonu tabele (ikona tabele ) u gornjem levom uglu pregleda.
  2. Izaberite stavku "Dodaj prilagođenu kolonu".
  3. U dijalogu "Prilagođena kolona ", u polje "Formula prilagođene kolone " unesite [Order_Details.JediničnaCena] * [Order_Details.Količina].
  4. U polje "Ime nove kolone " unesite "Zbir reda".
  5. Izaberite dugme U redu.

Izračunavanje zbira reda za svaki red tabele „Detalji_porudžbine“

5. korak: Transformacija kolone sa godinama "DatumPorudžbine"

U ovom koraku treba da transformišete kolonu DatumPorudžbine kako bi se prikazala godina datuma porudžbine.

  1. U prikazu podataka kliknite desnim tasterom miša na kolonu "DatumPorudžbine" i izaberitestavku "Godinatransformacije>".

  2. Preimenujte kolonu DatumPorudžbine u Godina:

    1. Kliknite dvaput na kolonu DatumPorudžbine i unesite reč Godina ili
    2. Right-Click u koloni "DatumPorudžbine " izaberite stavku "Preimenuj" i unesite stavku "Godina".

6. korak: Grupisanje redova po ID-u proizvoda i godini

  1. U prikazu podataka izaberite stavke "Godina " i Order_Details.IDProizvoda.

  2. Right-Click jedno od zaglavlja i izaberite stavku "Grupiši po".

  3. U dijalogu Grupisanje po:

    1. U okviru za tekst Ime nove kolone unesite ime Ukupna prodaja.
    2. Na padajućem meniju Operacija izaberite stavku Zbir.
    3. Na padajućem meniju Kolona izaberite stavku Zbir reda.
  4. Izaberite dugme U redu.
    Dijalog „Grupisanje po“ za agregatne operacije

7. korak: Preimenovanje upita

Pre nego što uvezete podatke o prodaji u Excel, preimenujte upit:

  • U oknu "Postavke upita ", u polje "Ime " unesite "Ukupna prodaja".

Rezultati: Konačni upit za 2. zadatak

Kad završite svaki korak, imaćete upit „Ukupna prodaja“ preko Northwind OData feeda.

Ukupna prodaja

Rezime: Power Query koraci kreirani u 2. zadatku

Dok u programskom dodatku Power Query obavljate aktivnosti vezane za upite, u oknu "Postavke upita" kreiraju se i navode koraci upita, na listi "Primenjeni koraci". Za svaki korak postoji odgovarajuća Power Query formula, poznata i pod nazivom „M“ jezik. Više informacija o Power Query formulama potražite u članku Saznajte više o Power Query formulama.

Zadatak Korak upita Formula
Povezivanje sa OData feedom Izvor = OData.Feed("http://services.odata.org/Northwind/Northwind.svc", null, [Implementation="2.0"])
Select a table Navigacija = izvor{[name="Porudžbine"]}[Podaci]
Proširivanje tabele Detalji_Porudžbine Proširivanje tabele „Detalji_Porudžbine“ = Table.ExpandTableColumn(Orders, "Order_Details", {"ProductID", "UnitPrice", "Quantity"}, {"Order_Details.ProductID", "Order_Details.UnitPrice", "Order_Details.Quantity"})
Uklanjanje drugih kolona kako bi se prikazale samo bitne kolone RemovedColumns = Table.RemoveColumns(#"Expand Order_Details",{"OrderID", "CustomerID", "EmployeeID", "RequiredDate", "ShippedDate", "ShipVia", "Freight", "ShipName", "ShipAddress", "ShipCity", "ShipRegion", "ShipPostalCode", "ShipCountry", "Customer", "Employee", "Shipper"})
Izračunavanje zbira reda za svaki red tabele „Detalji_porudžbine“ Dodato je prilagođeno = Table.AddColumn(RemovedColumns, "Custom", each [Order_Details.UnitPrice] * [Order_Details.Quantity])
= Table.AddColumn(#"Expanded Order_Details", "Line Total", each [Order_Details.UnitPrice] * [Order_Details.Quantity])
Promena u smislenije ime, Lne Total Preimenovane kolone = Table.RenameColumns(InsertedCustom,{{"Custom", "Line Total"}})
Transformacija kolone „DatumPorudžbine“ za prikazivanje godine Izdvojena godina = Table.TransformColumns(#"Grouped Rows",{{"Year", Date.Year, Int64.Type}})
Promenite u
smislenija imena, "DatumPorudžbine" i "Godina"
Preimenovane kolone 1 Table.RenameColumns
(TransformedColumn,{{"OrderDate", "Year"}})
Grupisanje redova po ID-u proizvoda i godini GroupedRows = Table.Group(RenamedColumns1, {"Year", "Order_Details.ProductID"}, {{"Total Sales", each List.Sum([Line Total]), type number}})

3. zadatak: Kombinovanje upita „Proizvodi“ i „Ukupna prodaja“

Power Query omogućava vam da kombinujete više upita, njihovim objedinjavanjem ili dodavanjem. Operacija Objedinjavanje izvršava se na bilo kom Power Query upitu sa tabelarnim oblikom, bez obzira na izvor podataka iz kojeg podaci potiču. Više informacija o kombinovanju izvora podataka potražite u članku Kombinovanje više upita.

U ovom zadatku kombinujete upite "Proizvodi" i "Ukupna prodaja" pomoću upitaobjedinjavanja i operacije proširivanja , a zatim učitavate upit "Ukupna prodaja po proizvodu" u Excel model podataka.

1. korak: Objedinjavanje kolone "IDProizvoda" u upitu "Ukupna prodaja"

  1. U Excel radnoj svesci idite do upita " Proizvodi " na kartici radnog lista "Proizvodi ".

  2. Izaberite ćeliju u upitu, a zatim izaberite stavku "Objedini upit>".

  3. U dijalogu Objedinjavanje izaberite stavku "Proizvodi " kao primarnu tabelu i stavku "Ukupna prodaja " kao sekundarni ili srodni upit za objedinjavanje. "Ukupna prodaja " postaje nova strukturirana kolona sa ikonom za proširivanje.

  4. Da bi se tabela Ukupna prodaja podudarala sa tabelom Proizvodi po koloni IDProizvoda, izaberite kolonu IDProizvoda iz tabele Proizvodi i kolonu Detalji_porudžbine.IDProizvoda iz tabele Ukupna prodaja.

  5. U dijalogu Nivoi privatnosti:

    1. Izaberite stavku Organizacioni za nivo izolacije privatnosti za oba izvora podataka.
    2. Izaberite stavku Sačuvaj.
  6. Izaberite dugme U redu.

    Napomena

    Nivoi privatnosti sprečavaju korisnike da slučajno kombinuju podatke iz više izvora podataka, koji su možda privatni ili za organizaciju. U zavisnosti od upita korisnik može slučajno da pošalje podatke iz privatnog izvora podataka drugom izvoru podataka koji je možda zlonameran. Power Query analizira svaki izvor podataka i postavlja mu definisani nivo privatnosti: javni, organizacijski i privatni. Više informacija o nivoima privatnosti potražite u članku "Podešavanje nivoa privatnosti".

    Dijalog „Objedinjavanje“

Rezultat

Operacija objedinjavanja kreira upit. Rezultat upita sadrži sve kolone iz primarne tabele (proizvodi) i jednu strukturiranu kolonu tabele do srodne tabele (Ukupna prodaja). Izaberite ikonu " Proširi" da biste u primarnu tabelu dodali nove kolone iz sekundarne ili srodne tabele.

Konačno objedinjavanje

2. korak: Proširivanje objedinjene kolone

U ovom koraku treba da proširite objedinjenu kolonu sa imenom "NovaKolona" kako biste napravili dve nove kolone u upitu "Proizvodi ": Godina i Ukupna prodaja.

  1. U prikazu podataka, izaberite ikonu za proširivanje (Proširi ) pored stavke "NovaKolona".

  2. Na padajućoj listi " Razvijanje ":

    1. Izaberite stavku (Izaberi sve kolone) da biste obrisali sve kolone.
    2. Izaberite stavke "Godina " i "Ukupna prodaja".
    3. Izaberite dugme U redu.
  3. Preimenujte te dve kolone u Godina i Ukupna prodaja.

  4. Da biste saznali koji su proizvodi i koje godine imali najveću količinu prodaje, izaberite stavku "Sortiraj po opadajućem redosledupo ukupnoj prodaji".

  5. Preimenujte upit u Ukupna prodaja po proizvodu.

Rezultat

Veza za proširivanje tabele

3. korak: Učitavanje upita "Ukupna prodaja po proizvodu" u Excel model podataka

U ovom koraku učitate upit u Excel model podataka kako biste izgradili izveštaj povezan sa rezultatom upita. Kad učitate podatke u Excel model podataka, možete da koristite Power Pivot za dalju analizu podataka.

  1. Izaberite stavku "Početak>","Zatvori & učitavanje".
  2. U dijalogu "Uvoz podataka " uverite se da ste izabrali "Dodaj ove podatke u model podataka". Za više informacija o korišćenju ovog dijaloga, izaberite znak pitanja (?).

Rezultat

Imate upit " Ukupna prodaja po proizvodu " koji kombinuje podatke iz Products.xlsx datoteke i Northwind OData feeda. Ovaj upit se primenjuje na Power Pivot model. Pored toga, promene upita menjaju i osvežavaju dobijenu tabelu u modelu podataka.

Rezime: Power Query koraci kreirani u 3. zadatku

Dok izvršavate aktivnosti objedinjavanja upita u programskom dodatku Power Query, koraci upita se kreiraju i navode u oknu "Postavke upita", na listi "Primenjeni koraci". Za svaki korak postoji odgovarajuća Power Query formula, poznata i pod nazivom „M“ jezik. Više informacija o Power Query formulama potražite u članku Saznajte više o Power Query formulama.

Zadatak Korak upita Formula
Objedinjavanje kolone „IDProizvoda“ u upitu „Ukupna prodaja“ Izvor (izvor podataka za operaciju Objedinjavanje) = Table.NestedJoin(Products, {"ProductID"}, #"Total Sales", {"Order_Details.ProductID"}, "Total Sales", JoinKind.LeftOuter)
Proširivanje kolone objedinjavanja Proširena ukupna prodaja = Table.ExpandTableColumn(Source, "Total Sales", {"Year", "Total Sales"}, {"Total Sales.Year", "Total Sales.Total Sales"})
Preimenovanje dve kolone Preimenovane kolone = Table.RenameColumns(#"Expanded Total Sales",{{"Total Sales.Year", "Year"}, {"Total Sales.Total Sales", "Total Sales"}})
Sortiraj ukupnu prodaju rastućim redosledom Sortirani redovi = Table.Sort(#"Renamed Columns",{{"Total Sales", Order.Ascending}})

Takođe pogledajte

Pomoć za Power Query za Excel