Dodajte več moči v analizo podatkov tako, da ustvarite relacije, ki prepoznajo različne tabele. Relacija je povezava med dvema tabelama, ki vsebujeta podatke: en stolpec v vsaki tabeli je osnova za relacijo. Če želite bolje razumeti, zakaj so odnosi uporabni, si predstavljajte, da v svojem podjetju spremljate podatke o naročilih strank. Sledite lahko vsem podatkovom v eni tabeli, ki imajo tako strukturo:
IDStranke |
Ime |
E-pošta |
OdstotekPopusta |
IDNaročila |
DatumNaročila |
Izdelek |
Količina |
---|---|---|---|---|---|---|---|
1 |
Ashton |
chris.ashton@contoso.com |
.05 |
256 |
2010-01-07 |
Compact Digital |
11 |
1 |
Ashton |
chris.ashton@contoso.com |
.05 |
255 |
2010-01-03 |
SLR Camera |
15 |
2 |
Jaworski |
michal.jaworski@contoso.com |
.10 |
254 |
2010-01-03 |
Budget Movie-Maker |
27 |
Ta pristop lahko deluje, vendar vključuje shranjevanje veliko odvečnih podatkov, na primer e-poštni naslov stranke za vsako naročilo. Prostor za shranjevanje je poceni, če pa se e-poštni naslov spremeni, morate posodobiti vsako vrstico za to stranko. Težavo lahko odpravite tako, da podatke razdelite v več tabel in določite relacije med temi tabelami. To je pristop, uporabljen v relacijskih zbirkah podatkov, kot je SQL Server. Zbirka podatkov, ki jo uvozite, lahko na primer predstavlja podatke o naročilu s tremi sorodnimi tabelami:
Stranke
[IDStranke] |
Ime |
E-pošta |
---|---|---|
1 |
Ashton |
chris.ashton@contoso.com |
2 |
Jaworski |
michal.jaworski@contoso.com |
PopustiZaStranke
[IDStranke] |
OdstotekPopusta |
---|---|
1 |
.05 |
2 |
.10 |
Naročila
[IDStranke] |
IDNaročila |
DatumNaročila |
Izdelek |
Količina |
---|---|---|---|---|
1 |
256 |
2010-01-07 |
Compact Digital |
11 |
1 |
255 |
2010-01-03 |
SLR Camera |
15 |
2 |
254 |
2010-01-03 |
Budget Movie-Maker |
27 |
Relacije obstajajo znotraj podatkovnega modela , ki ga izrecno ustvarite, ali pa relacije, ki jih Excel samodejno ustvari v vašem imenu, ko hkrati uvozite več tabel. Model lahko ustvarite in upravljate tudi v dodatku Power Pivot. Če želite izvedeti več, glejte Ustvarjanje podatkovnega modela v Excelu.
Če za uvoz te tabele iz iste zbirke podatkov uporabite dodatek Power Pivot, lahko Power Pivot zazna relacije med njimi na podlagi stolpcev v [oglatih oklepajih] in te relacije znova ustvari v podatkovnem modelu, ki ga izdeluje v ozadju. Če želite več informacij, glejte Samodejno zaznavanje in določanje odnosov v tem članku. Če uvozite tabele iz več virov, lahko ročno ustvarjate relacije, kot je opisano v razdelku Ustvarjanje relacije med dvema tabelama.
Odnosi temeljijo na stolpcih v vsaki tabeli, ki vsebuje enake podatke. Tabelo »Stranke« lahko na primer povežite s tabelo » Naročila «, če vsaka vsebuje stolpec, v katerem je shranjen ID stranke. V opisanem primeru imata stolpca enaki imeni, vendar to ni pogoj. Ime enega bi lahko bilo CustomerID, drugega pa CustomerNumber; pogoj je le, da vse vrstice v tabeli Orders vsebujejo številko ID, ki je shranjena tudi v tabeli Customers.
V relacijski zbirki podatkov je več vrst ključev. Ključ je po navadi stolpec s posebnimi lastnostmi. Če razumete namen posameznega ključa, lažje upravljate podatkovni model z več tabelami, ki zagotavlja podatke za vrtilne tabele, vrtilne grafikone ali poročila Power View.
Čeprav obstaja veliko vrst ključev, so to najpomembnejše za naš namen tukaj:
-
Primarni ključ: enolično prepozna vrstico v tabeli, na primer CustomerID v tabeli Customers.
-
Nadomestni ključ (ali ključ kandidat): stolpec , ki ni primarni ključ, ki je enoličen. Tabela Employees lahko na primer vsebuje številko ID zaposlenega in številko socialnega zavarovanja, ki sta obe enolični.
-
Tuji ključ: stolpec, ki se sklicuje na enoličen stolpec v drugi tabeli, na primer CustomerID v tabeli Orders , ki se nanaša na CustomerID v tabeli Customers.
V podatkovnem modelu se primarni ali alternativni ključ imenuje povezani stolpec. Če ima tabela primarni in alternativni ključ, lahko kot osnovo za relacijo med tabelama uporabite oba. Tuji ključ se imenuje izvorni stolpec ali samo stolpec. V našem primeru bi bila relacija določena med CustomerID v tabeli Orders (stolpec) in CustomerID v tabeli Customers (stolpec za iskanje). Če uvozite podatke iz relacijske zbirke podatkov, Excel privzeto izbere tuji ključ iz ene tabele in ustrezni primarni ključ iz druge tabele. Vendar lahko kot stolpec za iskanje uporabite kateri koli stolpec, ki ima enolične vrednosti.
Odnos med stranko in naročilom je odnos »ena proti mnogo«. Vsaka stranka ima lahko več naročil, naročilo pa ne more biti povezano z več strankami. Druga pomembna relacija tabele je »ena proti ena«. V našem primeru ima tabela CustomerDiscounts , ki določa enotno stopnjo popusta za vsako stranko, relacijo »ena proti ena« s tabelo »Stranke«.
V tej tabeli so prikazani odnosi med tremi tabelami (Customers, CustomerDiscounts inOrders):
Relacija |
Vrsta |
Stolpec za iskanje |
Stolpec |
---|---|---|---|
Stranke-PopustiZaStranke |
ena proti ena |
Stranke.IDStranke |
PopustiZaStranke.IDStranke |
Stranke-Naročila |
ena na mnogo |
Stranke.IDStranke |
Naročila.IDStranke |
Opomba: Podatkovni model ne podpira relacij »mnogo na mnogo«. Primer odnosa »mnogo na mnogo« je neposreden odnos med tabelama Products in Customers: stranka lahko kupi veliko izdelkov, enak izdelek pa lahko kupi veliko strank.
Ko ustvarite kateri koli odnos, mora Excel običajno preračunati vse formule, ki uporabljajo stolpce iz tabel v novem odnosu. Obdelava lahko traja nekaj časa, odvisno od količine podatkov in zapletenosti odnosov. Če želite več informacij, glejte Preračunavanje formul.
V podatkovnem modelu je med dvema tabelama lahko več relacij. Če želite ustvariti natančne izračune, Excel potrebuje eno pot od ene tabele do naslednje. Zato je naenkrat aktiven samo en odnos v vsakem paru tabel. Čeprav so drugi neaktivni, lahko v formulah in poizvedbah določite neaktivni odnos.
V pogledu diagrama je aktivna relacija polna črta, neaktivne pa s črtkanimi črtami. Na primer, v AdventureWorksDW2012 tabela DimDate vsebuje stolpec DateKey, ki je povezan s tremi različnimi stolpci v tabeli FactInternetSales: OrderDate, DueDate in ShipDate. Če je aktivni odnos med DateKey in OrderDate, je to privzeti odnos v formulah, razen če ne določite drugače.
Relacije ni mogoče ustvariti, kadar so izpolnjeni ti pogoji:
Pogoji |
Opis |
---|---|
Enolični identifikator za vsako tabelo |
Vsaka tabela mora imeti en stolpec, ki enolično prepozna vsako vrstico v tej tabeli. Ta stolpec se pogosto imenuje primarni ključ. |
Enolični stolpci za iskanje |
Podatkovne vrednosti v stolpcu za iskanje morajo biti enolične. Z drugimi besedami, stolpec ne sme vsebovati dvojnikov. V podatkovnem modelu so ničle in prazni nizi enaki prazni vrednosti, ki je razlikovalna podatkovna vrednost. To pomeni, da v stolpcu za iskanje ne sme biti več ničel. |
Združljivi podatkovni tipi |
Podatkovni tipi v izvornem stolpcu in stolpcu za iskanje morajo biti združljivi. Če želite več informacij o podatkovnih tipih, glejte Podatkovni tipi, ki so podprti v podatkovnih modelih. |
V podatkovnem modelu ne morete ustvariti relacije med tabelama, če je ključ sestavljen ključ. Prav tako je omejeno ustvarjanje relacij »ena na ena« in »ena na mnogo«. Druge vrste relacij niso podprte.
Sestavljeni ključi in stolpci za iskanje
Sestavljeni ključ je sestavljen iz več kot enega stolpca. Podatkovni modeli ne smejo uporabljati sestavljenih ključev: tabela mora vedno imeti točno en stolpec, ki enolično prepozna vsako vrstico v tabeli. Če uvozite tabele z obstoječo relacijo, ki temelji na sestavljenem ključu, bo čarovnik za uvoz tabel v dodatku Power Pivot relacijo prezrt, ker je ni mogoče ustvariti v modelu.
Če želite ustvariti odnos med dvema tabelama z več stolpci, ki definirajo primarne in tuje ključe, najprej združite vrednosti, da ustvarite en sam stolpec s ključem, preden ustvarite odnos. To lahko naredite, preden uvozite podatke, ali tako, da z dodatkom Power Pivot ustvarite izračunan stolpec v podatkovnem modelu.
Odnosi »mnogo na mnogo«
Podatkovni model ne podpira odnosov »mnogo na mnogo«. Vanj ne morete preprosto dodati združevalnih tabel . Lahko pa uporabite funkcije DAX za modeliranje odnosov »mnogo na mnogo«.
Samozdruževanja in zanke
Samozdruževanja v podatkovnem modelu niso dovoljena. Samozdruževanje je rekurziven odnos, pri katerem se tabela združi sama s seboj. Velikokrat se uporablja za določanje hierarhij »nadrejeni–podrejeni«. Tabelo Employees bi lahko na primer združili samo s seboj, da bi ustvarili hierarhijo, ki prikazuje vodstveno verigo v podjetju.
Excel ne dovoljuje ustvarjanja zank med odnosi v delovnem zvezku. Z drugimi besedami, spodnji nabor odnosov je prepovedan.
Tabela 1, stolpec a proti Tabela 2, stolpec f
Tabela 2, stolpec f proti Tabela 3, stolpec n
Tabela 3, stolpec n proti Tabela 1, stolpec a
Če poskusite ustvariti odnos, ki bi povzročil nastanek zanke, pride do napake.
Ena od prednosti uvažanja podatkov z dodatkom Power Pivot je, da lahko Power Pivot včasih samodejno zazna ter ustvari nove relacije v podatkovnem modelu, ki ga ustvari v Excelu.
Ko uvozite več tabel, Power Pivot samodejno zazna morebitne obstoječe relacije med njimi. Ko ustvarite vrtilno tabelo, Power Pivot analizira tudi podatke v tabelah. Zazna morebitne odnose, ki še niso določeni, in predlaga stolpce, ki bi bili primerni za vključitev v te odnose.
Algoritem zaznavanja uporablja statistične podatke o vrednostih in metapodatke stolpcev ter tako odloča o verjetnosti odnosov.
-
Podatkovni tipi v vseh povezanih stolpcih morajo biti združljivi. Samodejno zaznavanje podpira samo podatkovne tipe celih števil in besedila. Če želite več informacij o podatkovnih tipih, glejte Podatkovni tipi, ki jih podpirajo podatkovni modeli.
-
Za uspešno zaznavanje odnosa mora biti število enoličnih ključev v stolpcu za iskanje večje od vrednosti v tabeli na strani »mnogo«. Z drugimi besedami, stolpec s ključem na strani odnosa »mnogo« ne sme vsebovati vrednosti, ki ne obstajajo v stolpcu s ključem v tabeli za iskanje. Predstavljajte si na primer tabelo, ki našteje izdelke z njihovimi številkami ID (tabela za iskanje) in tabelo prodaj, ki našteje prodaje za vsak izdelek (stran odnosa »mnogo«). Če vaši zapisi o prodajah vsebujejo številko ID izdelka, ki nima ustrezne številke ID v tabeli Products, odnosa ni mogoče samodejno ustvariti, morda pa ga lahko ustvarite ročno. Če želite, da Excel zazna odnos, morate najprej posodobiti tabelo za iskanje Product s številkami ID izdelkov, ki manjkajo.
-
Prepričajte se, da je ime stolpca s ključem na strani odnosa »mnogo« podobno imenu stolpca s ključem v tabeli za iskanje. Ni treba, da sta imeni povsem enaki. V poslovni nastavitvi imate na primer pogosto različice imen stolpcev, ki vsebujejo pravzaprav iste podatke: Emp ID, EmployeeID, Employee ID, EMP_ID itn. Algoritem zazna podobna imena in pripiše višjo verjetnost stolpcem, ki imajo podobna ali popolnoma enaka imena. Če želite povečati verjetnost za ustvarjanje odnosa, lahko poskusite zamenjati imena stolpcev podatkov, ki jih uvažate, z imeni, ki so podobna imenom stolpcev v obstoječih tabelah. Če Excel najde več možnih odnosov, odnosa ne ustvari.
Te informacije vam bodo morda pomagale razumeti, zakaj niso zaznane vse relacije ali kako lahko spremembe metapodatkov – na primer ime polja in podatkovni tipi – izboljšajo rezultate samodejnega zaznavanja relacij. Če želite več informacij, glejte Odpravljanje težav z odnosi.
Samodejno zaznavanje za poimenovane nize
Odnosi med poimenovanimi nizi in povezanimi polji v vrtilni tabeli se ne zaznajo samodejno. Ustvarite jih lahko ročno. Če želite, da se odnosi zaznajo samodejno, odstranite vsak poimenovani niz in dodajte posamezna polja iz poimenovanega niza neposredno v vrtilno tabelo.
Določanje odnosov
V nekaterih primerih se odnosi med tabelami samodejno združijo. Če na primer ustvarite odnos med prvima dvema paroma tabel spodaj, se predpostavlja odnos med preostalima dvema tabelama in se tudi samodejno ustvari.
Products in Category -- ročno ustvarjen odnos
Category in SubCategory -- ročno ustvarjen odnos
Products in SubCategory -- odnos se predpostavlja
Če želite, da se odnosi samodejno povežejo, morajo potekati v eno smer, kot je prikazano zgoraj. Če bi bil začetni odnos vzpostavljen na primer med tabelami Sales in Products ter Sales in Customers, se odnos ne določi. Razlog je v tem, da je odnos med Products in Customers odnos »mnogo na mnogo«.