1 / 76

Workshop – Analysemodell for vinanmeldelser Pål Hellesnes

FIRST FRIDAY. Workshop – Analysemodell for vinanmeldelser Pål Hellesnes. Analysemodell for vinanmeldelser. Vi ønsker oss en gjenbrukbar BI løsning for rask og effektiv analyse av alle anmeldelser av nye viner som blir lansert ved et av vinslippene til Vinmonopolet.

mili
Download Presentation

Workshop – Analysemodell for vinanmeldelser Pål Hellesnes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FIRST FRIDAY Workshop – Analysemodell for vinanmeldelser Pål Hellesnes

  2. Analysemodell for vinanmeldelser Vi ønsker oss en gjenbrukbar BI løsning for rask og effektiv analyse av alle anmeldelser av nye viner som blir lansert ved et av vinslippene til Vinmonopolet. Mulige bruksområder vil være: • Beste kjøp: Vi ønsker a finne det beste kjøpet i vår prisklasse • Middagsvin: Vi ønsker å servere den beste vinen til gjestene våre • Til kjelleren: Vi ønsker de beste kandidatene til å legge i kjelleren • Vindistrikt: Vi ønsker å prøve en ny vin fra vårt favorittdistrikt For å støtte dette vil vi implementere: • En standard metode for å laste inn kildedata for vin og anmeldelser • En standard metode for å konsolidere anmeldt vin og score • En datamodell som lar brukerne å utføre analysere og lage egne rapporter

  3. introduksjon (målsetning, verktøy og metode)

  4. målsetning Analyse av vinanmeldelser Vinmonopolet nye viner Nettaviser anmeldelser

  5. verktøy Excel med Power Query og Power Pivot Power Query • laste inn kildedata • transformere data • konsolidere data • kalkulere verdier • tilrettelegge dimensjoner • tilrettelegge fakta Power Pivot • designe analysemodell • kalkulere verdier Pivot Table • analysere • rapportere • Add-ins: • Microsoft Office PowerPivot for Excel 2013 • Microsoft Power Query for Excel

  6. metode Steg i analyseprosessen vinlister fra Vinmonopolet og anmelselser i nettaviser en CSV-fil for hver anmelder Finn kildedata en tabell for alle nye viner og en tabell for alle anmeldelser Tilrettelegg kildedata et stjernediagram med score som fakta Konsolider kildedata en rapport over viner med minst 3 anmeldelser sortert etter høyest score Notepad Bygg en analysemodell Power Query den beste vin med alle vinens anmeldelser Analyser Power Pivot Pivot Table Publiser resultat

  7. finn kildedata (surf på nettet)

  8. finn kildedata Vininformasjon fra Vinmonopolet http://www.vinmonopolet.no/artikkel/om-vinmonopolet/nye-produkter-i-september

  9. finn kildedata Nettsider med vinanmeldelser http://www.dn.no/matvin/vin/ http://www.adressa.no/kultur/vin/vinslipp/ http://vinofil.no/2014/09/nyhetsslippet/ http://www.klikk.no/mat/drikke/ http://www.oblad.no/nyttig/ http://dinmat.no/Artikler/ http://www.aperitif.no/Vintips/tester/

  10. tilrettelegg kildedata (lag en csv-fil for hver anmelder)

  11. tilrettelegg kildedata Nyheter i basisutvalget Nyheter i basis-, parti- og testutvalget september 2014.xlsx

  12. tilrettelegg kildedata Nyheter i bestillingsutvalget Nyheter i bestillingsutvalget september 2014.xlsx

  13. tilrettelegg kildedata Vininformasjon fra Vinmonopolet Nyheter i bestillingsutvalget september 2014.xlsx varenummer pris varenavn varegruppe land distrikt produsent volum Nyheter i basis-, parti- og testutvalget september 2014.xlsx I tillegg ønsker vi å registrere URL til Vinmonopolets informasjonsside for hver av vinene. Vi vil da kunne innhente ytterligere informasjon om vinen som f.eks. smaksnotat, lagringsanbefaling og hvilke retter vinen passer til.

  14. tilrettelegg kildedata Vininformasjon fra Vinmonopolet passer til beskrivelse lagringsgrad url http://www.vinmonopolet.no/vareutvalg/hvitvin/frankrike/ch-carbonnieux-2012/sku-1716001

  15. tilrettelegg kildedata Vinanmeldelser fra Vinofil vinofil.csv Masi Masianco 2013;Middels dyp strågul. Tiltalende duft i retning eple/melon, sitrus, toppet med urter. Mildt syrefriskt anslag med ytterligere underbygging av duftinntrykket.;5;84;125,00;42221 BraunebergerJufferSonnenuhr Riesling Trocken GG 2013;Middels dyp grønngul. Tiltalende aroma i retning gule sommerepler ispedd florale toner, sitrus med lette grønne urtetoner. Friskt anslag i balanse, med toner som bekrefter og forsterker aromainntrykket. Lang.;6;90;307,10;17144 Von WinningUngeheuer Riesling GG 2013;Blek grønngul. Konsentrert aroma i retning sitrus, gule sommerepler, ispedd florale toner med mildt preg som fra grønne urter.I munnen forsterkes og underbygges aromainntrykket, lett mineralsk preg i avslutningen.;6;90;279,80;17145 Bassermann-Jordan Grainhübel Riesling 2013;Lys grønngul. Fruktpreget aroma med florale toner i retning friske blomster, grønn melon og urter.Saftig anslag med flott syre/frukt-preg i balanse.;6;88;215,00;17104 Fischer OckfenerBockstein Riesling Kabinett 2013;Lys strågul, grønne toner. Forfriskende fruktig aroma med preg som fra moden gul sitrusfrukt toppet med florale toner. Aromainntrykket underbygges og bekreftes i munnen. Bra lengde.;5;85;175,70;17055 DonnaTá Nero d'Avola 2012;Dyp mørkerød, middel tett kjerne, blålig rand. Tiltalende aroma som av modne mørke skogsbær, svisker, lakris/urter og en aning florale toner.Anslag med avrundede/bløte tanniner, tiltalende fruktsødme-preg i behagelig rund avslutning som varer lenge.;5;87;139,90;16964 Louis Pascal SignatureCahorsMalbec 2012;Dyp mørk rød, fiolette toner i kanten.Velutviklet aroma som av godt modne mørke skogsbær ispedd lette toner i retning urtekrydder. Mildt tiltalende fatpreg.Konsentrert fasthet i anslaget med ytterligere bekreftelse av aromainntrykket. Lang.;5;86;124,90;17123 CauvardBeauneClos de la MaladièreMonopole 2012;Dyp rød, middels kjernepreg, fiolett rand.Aroma i retning røde, modne hagebær, florale toner ispedd urter. For en Nese! Ung, saftig preg som underbygger og forsterker aromainntrykket.;6;90;219,90;16481 Deutz Brut Classic;Lys gyllen farge. Aroma av grønt eple, sitrusskall og moden frukt. Publikumsfrier med flott syrlighet og balansert mousse.;5;86;339,90;11609

  16. tilrettelegg kildedata kildedata for vinanmeldelser adressa.csv aperitif.csv dagbladet.csv dinmat.csv klikk.csv oblad.csv vinofil.csv dn.csv

  17. tilrettelegg kildedata kildedata for vinanmeldelser vin anmeldelse score Må klikke in på underside for å lese smaksnotatet. Vil bare bli gjort på de beste vinene. Anmeldelsene til Vinforum er ikke med i analysen da dette er en betalt tjeneste.

  18. konsolider kildedata (lag en tabell for viner og en for anmeldelser)

  19. konsolider kildedata Tabell for alle viner produsent url distrikt url

  20. konsolider kildedata Tabell for alle viner varenavn distrikt lagringsgrad produsent

  21. konsolider kildedata Tabell for alle viner varebeskrivelse * pris varenummer varetype farge lukt smak passer til distrikt lagringsgrad *) Beskrivelse av produktene i bestillingsutvalget er foretatt av grossistene. Produktbeskrivelsene av varer i basis-, parti- og testutvalget er, etter sensorisk prøving og kvalitetskontroll, foretatt av Vinmonopolet.

  22. konsolider kildedata Tabell for alle viner Demo 1 konsolidering av tabeller for viner

  23. konsolider kildedata Tabell for alle viner Demo 2 én felles tabell for alle viner

  24. konsolider kildedata Tabell for alle anmeldelser varenummer varenavn pris poeng smaksnotat

  25. konsolider kildedata Tabell for alle anmeldelser Demo 3 konsolidering av tabeller for anmeldelser

  26. konsolider kildedata Tabell for alle anmeldelser Demo 4 én felles tabell for alle anmeldelser

  27. konsolider kildedata Konsolidering av varenummer De 2 siste siffernei varenummeret angir ulike volum av varen. De fleste anmeldere sløyfer disse sifferne fordi de ikke kreves for å identifisere selve varen.

  28. konsolider kildedata Tabell for alle vinslipp Demo 5 en tabell for alle vinslipp

  29. analysemodell (lag en tabell for viner og en for anmeldelser)

  30. stjernediagram Analysemodell for vinanmeldelser vinen gjenkjennes ved varenummer, varenavn og pris Vin land – distrikt Anmeldelse Anmeldelse Dimensjon Vin Dimensjon Vinslipp Dimensjon score kalkuleres ut i fra terning, poeng og stjerner Anmeldelse Key Anmeldelse Kilde Vin Key Varenummer Varenavn Pris Smaksnotat Terning Poeng Stjerner Vin Key Vare Varenummer Varenavn Varebeskrivelse Varetype Pris Distrikt Distrikt URL Produsent Produsent URL Farge Lukt Smak Passer til Lagringsgrad Antall anmeldelser Vinslipp Key Vinslipp År Måned Score en rad pr vin pr vinslipp pr anmeldelse Hva gjør vi hvis produktet endres i en kontrakt som er opprettet i Core? Da vil det ikke være det samme produktet som er knyttet til søknaden i Front. Dette vil medføre at vi ikke har en entydig kobling mellom produkter i Front og Core! antall anmeldelser bestemmes ved å telle antall anmeldelser Vinslipp år – måned

  31. analysemodell Dimensjonstabell for vinslipp let Source = Excel.Workbook(File.Contents("D:\Prosjekter\BedreInnsikt\Vin\2014-5-September-Analysemodell\vinslipp.xlsx")), Vinslipp1 = Source{[Name="Vinslipp"]}[Data], FirstRowAsHeader = Table.PromoteHeaders(Vinslipp1), InsertedIndex = Table.AddIndexColumn(FirstRowAsHeader,"Index"), RenamedColumns = Table.RenameColumns(InsertedIndex,{{"Index", "Vinslipp Key"}}), ReorderedColumns = Table.ReorderColumns(RenamedColumns,{"Vinslipp Key", "Vinslipp", "År", "Måned"}) in ReorderedColumns

  32. analysemodell Dimensjonstabell for vinslipp Demo 6 dimensjonstabell for vinslipp

  33. analysemodell Dimensjonstabell for viner let Source = Excel.Workbook(File.Contents("D:\Prosjekter\BedreInnsikt\Vin\2014-5-September-Analysemodell\viner.xlsx")), Viner = Source{[Name="Viner"]}[Data], FirstRowAsHeader = Table.PromoteHeaders(Viner), InsertedIndex = Table.AddIndexColumn(FirstRowAsHeader,"Index"), RenamedColumns = Table.RenameColumns(InsertedIndex,{{"Index", "Vin Key"}}), InsertedCustom= Table.AddColumn(ReorderedColumns, "Vin", eachNumber.ToText([Varenummer]) & " " & [Varenavn] & " - kr. " & Number.ToText([Pris], "N", "nb-NO")), ReorderedColumns = Table.ReorderColumns(InsertedCustom,{"Vin Key", "Vin", "Varenummer", "Varenavn", "Varegruppe", "Land", "Distrikt", "Produsent", "Volum", "Pris"}) in ReorderedColumns

  34. analysemodell Dimensjonstabell for anmeldelser let Source = Excel.Workbook(File.Contents("D:\Prosjekter\BedreInnsikt\Vin\2014-5-September-Analysemodell\anmeldelser.xlsx")), AnmeldelserVasket= Source{[Name="AnmeldelserVasket"]}[Data], FirstRowAsHeader = Table.PromoteHeaders(AnmeldelserVasket), ChangedType = Table.TransformColumnTypes(FirstRowAsHeader,{{"Varenummer", type number}, {"Pris", type number}, {"Terning", type number}, {"Poeng", type number}, {"Stjerner", type number}}), InsertedIndex = Table.AddIndexColumn(ChangedType,"Index"), RenamedColumns = Table.RenameColumns(InsertedIndex,{{"Index", "Anmeldelse Key"}}), InsertedCustom= Table.AddColumn(ReorderedColumns, "Kildescore", eachif [Poeng]<>null then "[" & [Kilde] & ": " & Number.ToText([Poeng]) & " poeng]" else if[Terning]<>null then "[" & [Kilde] & ": terning " & Number.ToText([Terning]) & "]" elseif [Stjerner]<>null then"[" & [Kilde] & ": " & Number.ToText([Stjerner]) & " stjerner]" else ""), InsertedCustom= Table.AddColumn(InsertedCustom, "Anmeldelse", eachif [Smaksnotat]<>null then [Smaksnotat] & " " & [Kildescore] else [Kildescore]), ReorderedColumns= Table.ReorderColumns(InsertedCustom1,{"Anmeldelse Key", "Kilde", "Anmeldelse", "Kildescore", "Varenummer", "Varenavn", "Pris", "Smaksnotat", "Terning", "Poeng", "Stjerner"}) in ReorderedColumns

  35. analysemodell Faktatabell for score let Source = Table.Join( Vin,{"Varenummer"}, Table.RenameColumns( Anmeldelse,{{"Varenummer", "Anmeldelse Varenummer"}, {"Varenavn", "Anmeldelse Varenavn"}, {"Pris", "Anmeldelse Pris"}} ),{"Anmeldelse Varenummer"}, JoinKind.Inner ), RemovedColumns = Table.RemoveColumns(Source,{"Varenummer", "Varenavn", "Varegruppe", "Land", "Distrikt", "Produsent", "Volum", "Pris", "Kilde", "Anmeldelse Varenummer", "Anmeldelse Varenavn", "Anmeldelse Pris", "Smaksnotat"}), InsertedCustom = Table.AddColumn(RemovedColumns, "Anmeldelse score", eachif [Poeng]<>null then [Poeng] elseif [Terning]<>null then [Terning]*4+68 elseif [Stjerner]<>null then [Stjerner]*5+67 else 0), InsertedCustom1 = Table.AddColumn(InsertedCustom, "Vinslipp Key", each 0), ChangedType = Table.TransformColumnTypes(InsertedCustom1,{{"Vinslipp Key", type number}}), ReorderedColumns = Table.ReorderColumns(ChangedType,{"Vinslipp Key", "Vin Key", "Anmeldelse Key", "Terning", "Poeng", "Stjerner", "Anmeldelse score"}), RemovedColumns1 = Table.RemoveColumns(ReorderedColumns,{"Terning", "Poeng", "Stjerner"}), ChangedType1 = Table.TransformColumnTypes(RemovedColumns1,{{"Anmeldelse score", type number}}), RemovedColumns2 = Table.RemoveColumns(ChangedType1,{"Vin", "Anmeldelse", "Kildescore"}) in RemovedColumns2

  36. analysemodell Analysemodell for vinanmeldelser Demo 7 analysemodell for vinanmeldelser

  37. stjernediagram Analysemodell for vinanmeldelser skulte kolonner hierarki kalkulerte verdier Score:=AVERAGE([Anmeldelse score]) Antall anmeldelser=COUNTROWS(RELATEDTABLE(Score))

  38. analyse (beste viner med minst 3 anmeldelser)

  39. analysemodell De beste vinene 3 eller flere anmeldelser kun hvitvin under kr. 350,-

  40. alternativ løsning (kan dette løses på en enklere måte?)

  41. alternativ løsning Analysetabell for anmeldelser let Source = Excel.Workbook(File.Contents("D:\Prosjekter\BedreInnsikt\Vin\2014-5-September-Analysemodell\anmeldelser.xlsx")), AnmeldelserVasket1 = Source{[Name="AnmeldelserVasket"]}[Data], FirstRowAsHeader = Table.PromoteHeaders(AnmeldelserVasket1), InsertedCustom = Table.AddColumn(FirstRowAsHeader, "Anmeldelse score", eachif [Poeng]<>null then [Poeng] elseif [Terning]<>null then [Terning]*4+68 elseif [Stjerner]<>null then [Stjerner]*5+67 else 0), InsertedCustom1 = Table.AddColumn(InsertedCustom, "Kilde score", eachif [Poeng]<>null then "[" & [Kilde] & ": " & Number.ToText([Poeng]) & " poeng]" elseif [Terning]<>null then "[" & [Kilde] & ": terning " & Number.ToText([Terning]) & "]" elseif [Stjerner]<>null then "[" & [Kilde] & ": " & Number.ToText([Stjerner]) & " stjerner]" else""), InsertedCustom2 = Table.AddColumn(InsertedCustom1, "Anmeldelse", eachif [Smaksnotat]<>null then [Smaksnotat] & " " & [Kilde score] else [Kilde score]), InsertedCustom3 = Table.AddColumn(InsertedCustom2, "Vare", each [Varenummer] & " " & [Varenavn] & " - kr. " & Number.ToText([Pris], "N", "nb-NO")), ReorderedColumns = Table.ReorderColumns(InsertedCustom3,{"Varenummer", "Vare", "Varenavn", "Pris", "Kilde", "Anmeldelse", "Anmeldelse score", "Smaksnotat", "Terning", "Poeng", "Stjerner", "Kilde score"}) in ReorderedColumns

  42. alternativ løsning Analysemodell for anmeldelser under kr. 350,- kan ikke filtrere på antall anmeldelser eller varetype samme vare har forskjellig navn analysemodellen består av kun én tabell ingen Key kolonner eller faktatabell kalkulert verdi Score:=AVERAGE([Anmeldelse score])

  43. alternativ løsning Valg av løsningsalternativ stjernediagram enkel tabell VS • Mer elegant og brukervennlig • Skiller mellom fakta og dimensjoner • Kan filtrere på antall anmeldelser • Kan filtrere på varetype • Har konsoliderer varenavn • Støtter analyse for flere vinslipp • Enklere å implementere Velg denne dersom du selv skal gjennomføre analysen én gang … … ellers velg denne!

  44. forbedringer (kan løsningen lages bedre?)

  45. forbedringer Endringer som ville forbedre løsningen • Maskinell parsing av HTML for å laste inn anmeldelsene • Laste inn smaksnotater fra anmeldelser med undersider • Laste inn detaljert informasjon av vinene fra Vinmonopolet • Vasking av varenummer med bruk av Master Data Management • Lage en ønskeliste av interessante viner • Lage en innkjøpsliste som kan sendes som e-post

  46. Information is not knowledge Albert Einstein

  47. konsolider kildedata Tabell for alle viner Demo 1 konsolidering av tabeller for viner

  48. konsolider kildedata Tabell for alle viner Start Excel med et nytt regneark. Fra POWER QUERY fanen, velg From File og så From Excel. I Navigator panelet dobbel-klikk på den første tabellen.

  49. konsolider kildedata Tabell for alle viner I Home-fanen klikk på Use First Row As Headers.

  50. konsolider kildedata Tabell for alle viner Merk kolonnen KATEGORI. I Home-fanen klikk på RemoveColumns og velg RemoveColumns

More Related