Excel
Element | Bekrivelse |
---|---|
Utgivelsestilstand | Generell tilgjengelighet |
Produkter | Excel Power BI (semantiske modeller) Power BI (dataflyter) Stoff (Dataflyt gen2) Power Apps (dataflyter) Dynamics 365 Customer Insights Analysis Services |
Godkjenningstyper som støttes | Anonym (på nett) Grunnleggende (på nettet) Organisasjonskonto (tilkoblet) |
Funksjonsreferansedokumentasjon | Excel.Workbook Excel.CurrentWorkbook |
Obs!
Noen funksjoner kan være til stede i ett produkt, men ikke andre på grunn av distribusjonsplaner og vertsspesifikke funksjoner.
Hvis du vil koble til en eldre arbeidsbok (for eksempel .xls eller XLSB), kreves OLEDB-leverandøren for Access-databasemotoren (eller ACE). Hvis du vil installere denne leverandøren, går du til nedlastingssiden og installerer den relevante (32-biters eller 64-biters) versjonen. Hvis du ikke har den installert, ser du følgende feil når du kobler til eldre arbeidsbøker:
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. The 32-bit (or 64-bit) version of the Access Database Engine OLEDB provider may be required to read this type of file. To download the client software, visit the following site: https://go.microsoft.com/fwlink/?LinkID=285987.
ACE kan ikke installeres i skytjenestemiljøer. Så hvis du ser denne feilen i en skyvert (for eksempel Power Query Online), må du bruke en gateway som har ACE installert for å koble til de eldre Excel-filene.
- Importer
Slik oppretter du tilkoblingen fra Power Query Desktop:
Velg Excel-arbeidsbok i hent dataopplevelsen. Hent dataopplevelsen i Power Query Desktop varierer mellom apper. Hvis du vil ha mer informasjon om Power Query Desktop, kan du få dataopplevelse for appen din ved å gå til Hvor for å hente data.
Bla etter og velg Excel-arbeidsboken du vil laste inn. Velg deretter Åpne.
Hvis Excel-arbeidsboken er tilkoblet, bruker du webkoblingen til å koble til arbeidsboken.
Velg arbeidsbokinformasjonen du vil bruke, i Navigator, og velg deretter Last inn for å laste inn dataene eller Transformer data for å fortsette å transformere dataene i Power Query-redigering.
Slik oppretter du tilkoblingen fra Power Query Online:
Velg excel-arbeidsbokalternativet i hent dataopplevelsen. Ulike apper har ulike måter å få tilgang til Power Query Online på for å få dataopplevelse. Hvis du vil ha mer informasjon om hvordan du får tilgang til Power Query Online, kan du få dataopplevelse fra appen din ved å gå til Hvor for å hente data.
Angi banen til Excel-arbeidsboken i dialogboksen Excel som vises.
Velg om nødvendig en lokal datagateway for å få tilgang til Excel-arbeidsboken.
Hvis dette er første gang du har åpnet denne Excel-arbeidsboken, velger du godkjenningstype og logger på kontoen din (om nødvendig).
Velg ønsket arbeidsbokinformasjon i Navigator, og transformer data for å fortsette å transformere dataene i Power Query-redigering.
Hvis du kobler til en Excel-arbeidsbok som ikke spesifikt inneholder én enkelt tabell, vil Power Query-navigatøren forsøke å opprette en foreslått liste over tabeller du kan velge mellom. Vurder for eksempel følgende arbeidsbokeksempel som inneholder data fra A1 til C5, mer data fra D8 til E10 og mer fra C13 til F16.
Når du kobler til dataene i Power Query, oppretter Power Query-navigatøren to lister. Den første listen inneholder hele arbeidsbokarket, og den andre listen inneholder tre foreslåtte tabeller.
Hvis du merker hele arket i navigatøren, vises arbeidsboken slik den ble vist i Excel, med alle de tomme cellene fylt med null.
Hvis du velger én av de foreslåtte tabellene, vises hver enkelt tabell som Power Query kunne fastslå fra arbeidsbokens oppsett, i navigatøren. Hvis du for eksempel velger Tabell 3, vises dataene som opprinnelig ble vist i celle C13 til F16.
Obs!
Hvis arket endres nok, kan det hende at tabellen ikke oppdateres riktig. Du kan kanskje løse oppdateringen ved å importere dataene på nytt og velge en ny foreslått tabell.
Når du importerer Excel-data, vil du kanskje legge merke til at visse tallverdier ser ut til å endre seg litt når de importeres til Power Query. Hvis du for eksempel velger en celle som inneholder 0,049 i Excel, vises dette tallet på formellinjen som 0,049. Hvis du importerer den samme cellen til Power Query og velger den, viser forhåndsvisningsdetaljene den som 0,0490000000000002 (selv om den i forhåndsvisningstabellen er formatert som 0,049). Hva skjer her?
Svaret er litt komplisert, og har å gjøre med hvordan Excel lagrer tall ved hjelp av noe som kalles binær flytpunkt-notasjon. Poenget er at det finnes visse tall som Excel ikke kan representere med 100 % presisjon. Hvis du åpner .xlsx-filen og ser på den faktiske verdien som lagres, ser du at i .xlsx-filen lagres 0,049 faktisk som 0,04900000000000000002. Dette er verdien Power Query leser fra .xlsx, og dermed verdien som vises når du merker cellen i Power Query. (Hvis du vil ha mer informasjon om numerisk presisjon i Power Query, kan du gå til inndelingene Desimaltall og Fast desimaltall iDatatyper i Power Query.)
Hvis du vil koble til et Excel-dokument som driftes i SharePoint, kan du gjøre det via webkoblingen i Power BI Desktop, Excel og Dataflyter, og også med Excel-koblingen i dataflyter. Slik får du koblingen til filen:
- Åpne dokumentet i skrivebordsversjonen av Excel.
- Åpne Fil-menyen, velg Informasjon-fanen, og velg deretter Kopier bane.
- Kopier adressen til feltet Filbane eller URL-adresse , og fjern ?web=1 fra slutten av adressen.
Power Query leser eldre arbeidsbøker (for eksempel .xls eller XLSB) ved hjelp av OLEDB-leverandøren for Access-databasemotoren (eller ACE). På grunn av dette kan du komme over uventede virkemåter når du importerer eldre arbeidsbøker som ikke oppstår når du importerer OpenXML-arbeidsbøker (for eksempel .xlsx). Her er noen vanlige eksempler.
På grunn av ACE kan verdier fra en eldre Excel-arbeidsbok importeres med mindre presisjon eller gjengivelse enn forventet. Tenk deg for eksempel at Excel-filen inneholder tallet 1024.231, som du har formatert for visning som «1,024.23». Når den importeres til Power Query, representeres denne verdien som tekstverdien "1 024,23" i stedet for som det underliggende fullstendig gjengivelsesnummeret (1024,231). Dette er fordi ACE i dette tilfellet ikke viser den underliggende verdien til Power Query, men bare verdien slik den vises i Excel.
Når ACE laster inn et ark, ser det på de første åtte radene for å bestemme datatypene i kolonnene. Hvis de første åtte radene ikke er representative for de senere radene, kan ACE bruke feil type på kolonnen og returnere nullverdier for alle verdier som ikke samsvarer med typen. Hvis en kolonne for eksempel inneholder tall i de første åtte radene (for eksempel 1000, 1001 og så videre), men har ikke-numeriske data i senere rader (for eksempel "100Y" og "100Z"), konkluderer ACE med at kolonnen inneholder tall, og eventuelle ikke-numeriske verdier returneres som null.
I noen tilfeller returnerer ACE helt forskjellige resultater på tvers av oppdateringer. Ved hjelp av eksemplet som er beskrevet i formateringsdelen, kan du plutselig se verdien 1024.231 i stedet for "1 024,23". Denne forskjellen kan skyldes at den eldre arbeidsboken er åpen i Excel mens den importeres til Power Query. Hvis du vil løse dette problemet, lukker du arbeidsboken.
Noen ganger kan ikke Power Query trekke ut alle dataene fra et Excel-regneark. Denne feilen skyldes ofte at regnearket har uriktige dimensjoner (for eksempel har dimensjoner av A1:C200
når de faktiske dataene opptar mer enn tre kolonner eller 200 rader).
Slik viser du dimensjonene i et regneark:
- Gi nytt navn til xlsx-filen med en .zip filtype.
- Åpne filen i Filutforsker.
- Naviger inn i xl\regneark.
- Kopier XML-filen for det problematiske arket (for eksempel Sheet1.xml) ut av ZIP-filen til en annen plassering.
- Undersøk de første linjene i filen. Hvis filen er liten nok, åpner du den i et tekstredigeringsprogram. Hvis filen er for stor til å åpnes i et tekstredigeringsprogram, kjører du følgende kommando fra en ledetekst: mer Sheet1.xml.
- Se etter en
<dimension .../>
kode (for eksempel<dimension ref="A1:C200" />
).
Hvis filen har et dimensjonsattributt som peker til én enkelt celle (for eksempel <dimension ref="A1" />
), bruker Power Query dette attributtet til å finne startraden og kolonnen i dataene på arket.
Hvis filen imidlertid har et dimensjonsattributt som peker til flere celler (for eksempel <dimension ref="A1:AJ45000"/>
), bruker Power Query dette området til å finne startraden og kolonnen samt sluttraden og kolonnen. Hvis dette området ikke inneholder alle dataene på arket, lastes ikke noen av dataene inn.
Du kan løse problemer forårsaket av uriktige dimensjoner ved å gjøre én av følgende handlinger:
Åpne og lagre dokumentet på nytt i Excel. Denne handlingen overskriver de uriktige dimensjonene som er lagret i filen, med riktig verdi.
Kontroller at verktøyet som genererte Excel-filen, er fast for å sende ut dimensjonene riktig.
Oppdater M-spørringen for å ignorere de uriktige dimensjonene. Fra og med desember 2020-utgivelsen av Power Query
Excel.Workbook
støtter nå etInferSheetDimensions
alternativ. Når sann, vil dette alternativet føre til at funksjonen ignorerer dimensjonene som er lagret i arbeidsboken, og i stedet bestemmer dem ved å undersøke dataene.Her er et eksempel på hvordan du angir dette alternativet:
Excel.Workbook(File.Contents("C:\MyExcelFile.xlsx"), [DelayTypes = true, InferSheetDimensions = true])
Langsom innlasting av Excel-data kan også skyldes uriktige dimensjoner. Men i dette tilfellet skyldes tregheten at dimensjonene er mye større enn de trenger å være, i stedet for å være for små. Altfor store dimensjoner vil føre til at Power Query leser en mye større mengde data fra arbeidsboken enn det som faktisk er nødvendig.
Du kan løse dette problemet ved å se Finne og tilbakestille den siste cellen i et regneark for detaljerte instruksjoner.
Når du henter data fra Excel på maskinen eller fra SharePoint, bør du vurdere både volumet av dataene som er involvert, i tillegg til kompleksiteten i arbeidsboken.
Du vil legge merke til ytelsesnedbrytning når du henter svært store filer fra SharePoint. Dette er imidlertid bare én del av problemet. Hvis du har betydelig forretningslogikk i en Excel-fil som hentes fra SharePoint, kan det hende at denne forretningslogikken må utføres når du oppdaterer dataene, noe som kan føre til kompliserte beregninger. Vurder å aggregere og forhåndskalkulere data, eller flytte mer av forretningslogikken ut av Excel-laget og inn i Power Query-laget.
Selv om CSV-filer kan åpnes i Excel, er de ikke Excel-filer. Bruk tekst-/CSV-koblingen i stedet.
Det kan hende du ser følgende feil når du importerer arbeidsbøker som er lagret i Excels «Strengt åpne XML-regneark»-format:
DataFormat.Error: The specified package is invalid. The main part is missing.
Denne feilen oppstår når ACE-driveren ikke er installert på vertsdatamaskinen. Arbeidsbøker som er lagret i formatet «Strengt åpent XML-regneark» kan bare leses av ACE. Men fordi slike arbeidsbøker bruker samme filtype som vanlige Åpne XML-arbeidsbøker (.xlsx), kan vi ikke bruke filtypen til å vise den vanlige the Access Database Engine OLEDB provider may be required to read this type of file
feilmeldingen.
Hvis du vil løse feilen, installerer du ACE-driveren. Hvis feilen oppstår i en skytjeneste, må du bruke en gateway som kjører på en datamaskin som har ACE-driveren installert.
Det kan hende du ser følgende feil når du importerer bestemte Excel-arbeidsbøker.
DataFormat.Error: File contains corrupted data.
Vanligvis indikerer denne feilen at det er et problem med formatet på filen.
Noen ganger kan imidlertid denne feilen oppstå når en fil ser ut til å være en Åpen XML-fil (for eksempel .xlsx), men ACE-driveren er faktisk nødvendig for å behandle filen. Gå til delen Eldre ACE-kobling for mer informasjon om hvordan du behandler filer som krever ACE-driveren.
- Power Query Online får ikke tilgang til krypterte Excel-filer. Siden Excel-filer merket med andre følsomhetstyper enn Offentlig eller Ikke-business krypteres, er de ikke tilgjengelige via Power Query Online.
- Power Query Online støtter ikke passordbeskyttede Excel-filer.
- Alternativet Excel.Workbook
useHeaders
konverterer tall og datoer til tekst ved hjelp av gjeldende kultur, og fungerer dermed annerledes når det kjøres i miljøer med ulike operativsystemkulturer angitt. Vi anbefaler at du bruker Table.PromoteHeaders i stedet.