Skapa en parameterfråga (Power Query)

Gäller för
Excel för Microsoft 365 Excel för Microsoft 365 för Mac

Du kanske är ganska bekant med parameterfrågor och deras användning i SQL eller Microsoft Query. Power Query-parametrar har dock viktiga skillnader:

  • Parametrar kan användas i alla frågesteg. Förutom att fungera som ett datafilter kan parametrar användas för att ange sådana saker som en filsökväg eller ett servernamn.
  • Parametrar frågar inte efter indata. Istället kan du snabbt ändra deras värde med Power Query. Du kan även lagra och hämta värden från celler i Excel.
  • Parametrar sparas i en enkel parameterfråga, men är åtskilda från datafrågorna som de används i. När du skapat en parameter kan du lägga till en parameter i frågor efter behov.

Anteckning Om du vill använda det andra sättet att skapa parameterfrågor kan du läsa Skapa en parameterfråga i Microsoft Query.

Skapa en parameter

Du kan använda en parameter för att automatiskt ändra ett värde i en fråga och undvika att redigera frågan varje gång du vill ändra värdet. Du ändrar bara parametervärdet. När du har skapat en parameter sparas den i en särskild parameterfråga som du enkelt kan ändra direkt från Excel.

  1. Välj Data>, hämta data>från andra källor>Starta Power Query-redigeraren.

  2. I Power Query-redigeraren väljer du Start>Hantera parametrar > Nya parametrar.

  3. I dialogrutan Hantera parameter väljer du Ny.

  4. Ställ in följande efter behov:

    Namn Detta bör återspegla parameterns funktion, men håll den så kort som möjligt.
    Beskrivning Den kan innehålla information som hjälper personer att använda parametern korrekt.
    Obligatoriskt Gör något av följande:

    Valfritt värde Du kan ange valfritt värde av vilken datatyp som helst i parameterfrågan.

    Lista med värden Du kan begränsa värdena till en särskild lista genom att ange dem i det lilla rutnätet. Du måste också välja ett standardvärde och ett aktuellt värde nedan.

    Fråga Välj en listfråga som liknar en strukturerad kolumn avgränsad med kommatecken och omsluten av klammerparenteser.

    Till exempel kan statusfältet Problem ha tre värden: {"Ny", "Pågående", "Stängd"}. Du måste skapa listfrågan i förväg genom att öppna avancerad redigerare (välj HomeAdvanced>redigerare), ta bort kodmallen, ange listan med värden i frågelistans format och sedan välja Klar.

    När du har skapat klart parametern visas listfrågan i parametervärdena.
    Typ Det här anger parameterns datatyp.
    Föreslagna värden Om du vill kan du lägga till en lista med värden eller ange en fråga för att ge förslag på indata.
    Standardvärde Det här alternativet visas bara om Föreslagna värden är inställt på Lista med värden och anger vilket listobjekt som är standard. I det här fallet måste du välja en standardinställning.
    Aktuellt värde Beroende på var du använder parametern kanske frågan inte returnerar några resultat om den är tom. Om Obligatoriskt har valts kan det aktuella värdet inte vara tomt.
  5. Välj OK för att skapa parametern.

Använda en parameter för att ändra en datakälla

Här är ett sätt att hantera ändringar av datakällans platser och förhindra uppdateringsfel. Om du till exempel antar ett liknande schema och datakälla skapar du en parameter för att enkelt ändra en datakälla och förhindra datauppdateringsfel. Ibland ändras servern, databasen, mappen, filnamnet eller platsen. En databashanterare byter kanske ibland ut en server, en månatlig mängd CSV-filer hamnar i en annan mapp eller så behöver du enkelt växla mellan en utvecklings-/test-/produktionsmiljö.

Steg 1: Skapa en parameterfråga

I följande exempel har du flera CSV-filer som du importerar med importmappåtgärden (Select Data>Get Data>From FilesFrom>Folder) från mappen C:\DataFilesCSV1. Men ibland används en annan mapp som en plats för att släppa filerna, C:\DataFilesCSV2. Du kan använda en parameter i en fråga som ett ersättningsvärde för den andra mappen.

  1. Välj Start>Hantera parametrar>ny parameter.

  2. Ange följande information i dialogrutan Hantera parameter :

    Namn CSVFileDrop
    Beskrivning Alternativ fillagringsplats
    Obligatoriskt Ja
    Typ Text
    Föreslagna värden Valfritt värde
    Aktuellt värde C:\DataFilesCSV1
  3. Välj OK.

Steg 2: Lägg till parametern i datafrågan

  1. Om du vill ange mappnamnet som en parameter går du till Frågeinställningar, under Frågesteg, väljer Källa och sedan Redigera inställningar.
  2. Kontrollera att alternativet Filsökväg är inställt på Parameter och välj sedan parametern som du just skapade i listrutan.
  3. Välj OK.

Steg 3: Uppdatera parametervärdet

Mappens plats har precis ändrats, så nu kan du helt enkelt uppdatera parameterfrågan.

  1. Välj Dataanslutningar>& fliken Frågor> frågor, högerklicka på parameterfrågan och välj sedan Redigera.
  2. Ange den nya platsen i rutan Aktuellt värde , till exempel C:\DataFilesCSV2.
  3. Välj Start>Stäng & Läs in.
  4. Bekräfta resultatet genom att lägga till nya data i datakällan och uppdatera sedan datafrågan med den uppdaterade parametern (Välj Datauppdatera>alla).

Använda en parameter för att filtrera data

Ibland vill du ha ett enkelt sätt att ändra filtret för en fråga för att få olika resultat utan att redigera frågan eller göra något olika kopior av samma fråga. I det här exemplet ändrar vi ett datum för att enkelt ändra ett datafilter.

  1. Om du vill öppna en fråga letar du reda på en fråga som tidigare lästs in från Power Query-redigeraren, markerar en cell i dina data och väljer sedan Frågeredigera>. Mer information finns i Skapa, läsa in eller redigera en fråga i Excel.

  2. Välj filterpilen i en kolumnrubrik för att filtrera dina data och välj sedan ett filterkommando, till exempel Datum/tid-filter>efter. Dialogrutan Filtrera rader visas.

    Ange en parameter i dialogrutan Filter

  3. Välj knappen till vänster om rutan Värde och gör sedan något av följande:

    • Om du vill använda en befintlig parameter väljer du Parameter och väljer sedan den parameter som du vill använda i listan som visas till höger.
    • Om du vill använda en ny parameter väljer du Ny parameter och skapar sedan en parameter.
  4. Ange det nya datumet i rutan Aktuellt värde och välj sedan Stäng& Start >Läs in.

  5. Bekräfta resultatet genom att lägga till nya data i datakällan och uppdatera sedan datafrågan med den uppdaterade parametern (Välj Datauppdatera>alla). Ändra till exempel filtervärdet till ett annat datum om du vill se nya resultat.

  6. Ange det nya datumet i rutan Aktuellt värde .

  7. Välj Start>Stäng & Läs in.

  8. Bekräfta resultatet genom att lägga till nya data i datakällan och uppdatera sedan datafrågan med den uppdaterade parametern (Välj Datauppdatera>alla).

Använda ett cellvärde för att filtrera data

I det här exemplet läses värdet i frågeparametern från en cell i arbetsboken. Du behöver inte ändra parameterfrågan, du uppdaterar bara cellvärdet. Du kanske till exempel vill filtrera en kolumn efter den första bokstaven, men enkelt ändra värdet till valfri bokstav från A till Ö.

  1. Skapa en Excel-tabell med två celler på kalkylbladet i en arbetsbok där frågan du vill filtrera finns inläst.

    MyFilter
    G
  2. Markera en cell i Excel-tabellen och välj sedan Data>hämta data>från tabell/område. Power Query-redigeraren visas.

  3. I rutan Namn i fönstret Frågeinställningar till höger ändrar du frågenamnet till ett mer beskrivande, till exempel FiltreraCellVärde.

  4. Om du vill överföra värdet i tabellen, och inte själva tabellen, högerklickar du på värdet i Dataförhandsgranskning och väljer sedan Granska nedåt.
    Observera att formeln ändrades till = #"Changed Type"{0}[MyFilter]
    När du använder Excel-tabellen som ett filter i steg 10 refererar Power Query till tabellvärdet som filtervillkor. En direkt referens till Excel-tabellen skulle orsaka ett fel.

  5. Välj Stäng>start & Läs in>nära & Läs in till. Nu har du en frågeparameter med namnet "FilterCellValue" som du använde i steg 12.

  6. I dialogrutan Importera data väljer du Endast skapa anslutning och sedan OK.

  7. Öppna frågan du vill filtrera med värdet i tabellen FilterCellValue, en som tidigare lästs in från Power Query-redigeraren, genom att markera en cell i dina data och sedan välja Frågeredigera>. Mer information finns i Skapa, läsa in eller redigera en fråga i Excel.

  8. Välj filterpilen i en kolumnrubrik för att filtrera dina data och välj sedan ett filterkommando, till exempel Textfilter>börjar med. Dialogrutan Filtrera rader visas.

  9. Ange ett värde i rutan Värde, till exempel "G" och välj sedan OK. I det här fallet är värdet en tillfällig platshållare för värdet i tabellen FilterCellValue som du anger i nästa steg.

  10. Markera pilen till höger om formelfältet för att visa hela formeln. Här är ett exempel på ett filtervillkor i en formel:

    = Table.SelectRows(#"Changed Type", varje Text.StartsWith([Name], "G"))

  11. Välj värdet för filtret. Markera "G" i formeln.

  12. Använd M Intellisense, ange de första bokstäverna i tabellen FilterCellValue som du skapade och välj den sedan i listan som visas.

  13. Välj Start>Stäng>Stäng & Läs in.

Resultat

Frågan använder nu värdet i Excel-tabellen som du skapade för att filtrera frågeresultaten. Om du vill använda ett nytt värde redigerar du cellinnehållet i den ursprungliga Excel-tabellen i steg 1, ändrar "G" till "V" och uppdaterar sedan frågan.

Styra användningen av parameterfrågor

Du kan styra om parameterfrågor ska tillåtas eller inte.

  1. I Power Query-redigeraren väljer du Filalternativ>och inställningar>Frågealternativ>Power Query-redigeraren.
  2. I fönstret till vänster, under GLOBAL, väljer du Power Query-redigeraren.
  3. I fönstret till höger, under Parametrar, markerar eller avmarkerar du Tillåt alltid parametrisering i dialogrutorna datakälla och transformering.

Se även

Power Query för Excel-hjälp

Använda frågeparametrar (docs.com)