Kopīgot, izmantojot


Tabulas

Note

Microsoft Power Fx ir pamatnes programmu formulas valodas jaunais nosaukums. Šie raksti darbojas, kad izvelk valodu no pamatnes programmām, integrējot to ar citiem Microsoft Power Platform produktiem un padarām to pieejamu kā atvērtu avotu. Sāciet ar Microsoft Power Fx pārskatu par valodas ievadu.

Programmā Microsoft Power Fx var rakstīt formulā, kas piekļūst informācijai programmā Microsoft Excel, SharePoint, SQL Server un vairākos citos avotos, kas glabā datus ierakstos un tabulās. Lai pēc iespējas efektīvāk strādātu ar šāda veida datiem, pārskatiet jēdzienus šo struktūru pamatā.

  • Ierakstā ir viena vai vairākas informācijas kategorijas par personu, vietu vai lietu. Piemēram, ierakstā var būt iekļauts atsevišķa klienta vārds, e-pasta adrese un tālruņa numurs. Citos rīkos ieraksts saukts par “rindu” vai “vienumu”.
  • Tabulā ir viens vai vairāki ieraksti, kuros ir viena un tā pati informācijas kategorija. Piemēram, tabulā var būt iekļauts 50 klientu vārdi, e-pasta adreses un tālruņa numuri.

Varat izveidot dažādas formulas, kas kā argumentu izmanto tabulas nosaukumu, gluži tāpat kā formula programmā Excel kā argumentus izmanto vienu vai vairākas šūnu atsauces. Dažas formulas programmā Power Fx izveido tabulu, kas atspoguļo citus jūsu norādītos argumentus. Piemēram, varat izveidot šādu formulu:

  • lai atjauninātu tabulas ierakstu, norādot šo tabulu kā vienu no vairākiem argumentiem funkcijai Patch
  • lai pievienotu, noņemtu un pārdēvētu tabulas kolonnas, norādot šo tabulu kā argumentu funkcijai AddColumns, DropColumns vai RenameColumns. Neviena no šīm funkcijām nemodificē oriģinālo tabulu. Tā vietā funkcija izveido citu tabulu, pamatojoties uz citiem jūsu norādītajiem argumentiem.

Tabulas elementi

Tabulas elementi.

Ieraksti

Katrā Ierakstā ir vismaz viena informācijas kategorija par personu, vietu vai lietu. Iepriekš norādītajā piemērā ir redzams katra produkta ieraksts (Šokolāde, Maize un Ūdens), kā arī katras informācijas kategorijas kolonna (Cena, Rīcībā esošais daudzums un Pasūtītais daudzums).

Formulā ar figūriekavām varat atsaukties uz pašu ierakstu ārpus tabulas konteksta. Piemēram, šis ieraksts { Nosaukums: “Zemenes”, Cena: 7,99 } nav saistīts ar tabulu. Ņemiet vērā, ka šajā piemērā lauku nosaukumi, piemēram, Nosaukums un Cena, nav ietverti pēdiņās.

Lauki

Lauks ir atsevišķs informācijas elements ierakstā. Šāda veida lauku var vizualizēt kā kolonnas vērtību noteiktam ierakstam.

Gluži tāpat kā vadīklā, jūs atsaucaties uz ieraksta lauku, izmantojot .operatoru ierakstā. Piemēram, First(Products).Name izveido lauku Nosaukums pirmajam ierakstam tabulā Produkti.

Laukā var būt cits ieraksts vai tabula, kā parādīts piemērā par funkciju GroupBy. Varat ligzdot sev vēlamo ierakstu un tabulu līmeņu daudzumu.

Kolonnas

Kolonna attiecas uz vienu un to pašu lauku vienam vai vairākiem ierakstiem tabulā. Iepriekš parādītajā piemērā katram produktam ir cenas lauks, un šī cena ir vienā un tai pašā kolonna visiem produktiem. Iepriekš parādītajā tabulā ir četras kolonnas, kas ir horizontāli attēlotas augšdaļā:

  • Nosaukums
  • Cena
  • Rīcībā esošais daudzums
  • Pasūtītais daudzums

Kolonnas nosaukums atspoguļo šīs kolonnas laukus.

Visas kolonnā ietvertās vērtības ir viena un tā paša datu tipa. Iepriekš parādītajā piemērā kolonnā “Rīcībā esošais daudzums” vienmēr ir skaitlis, un tajā vienā ierakstā nevar būt virkne, piemēram, “12 vienības”. Jebkura lauka vērtība var būt arī tukša.

Iespējams, ka citos rīkos kolonnas sauktas par “laukiem”.

Tabula

Tabulā ir viens vai vairāki ieraksti, katrā no tiem ir vairāki lauki, kam ir konsekventi nosaukumi visos ierakstos.

Jebkurai tabulai, kas tiek glabāta datu avotā vai kolekcijā, ir nosaukums, ko izmantojat, lai atsauktos uz tabulu un to nodod to funkcijām, kas izmanto tabulas kā argumentus. Tabulas var būt arī funkcijas vai formulas rezultāts.

Tālāk sniegtajā piemērā varat izteikt tabulu formulā, izmantojot funkciju Table ar ierakstu kopu, ko izsakāt, izmantojot figūriekavas:

Table( { Value: "Strawberry" }, { Value: "Vanilla" } )

Varat definēt arī tabulu ar vienu kolonnu, izmantojot kvadrātiekavas. Ekvivalents veids, kā rakstīt iepriekš minēto:

[ "Strawberry", "Vanilla" ]

Tabulu formulas

Programmās Excel un Power Fx skaitļu un teksta virkņu manipulēšanai līdzīgos veidos lieto formulas:

  • Programmā Excel ierakstiet kādu vērtību, piemēram, 42, šūnā A1, un pēc tam ierakstiet formulu, piemēram, A1+2, citā šūnā, lai parādītu vērtību 44.
  • Programmā Power Apps iestatiet Noklusējuma rekvizītu Slider1 uz 42 un iestatiet etiķetes rekvizītu Text uz Slider1.Value + 2, lai iegūtu vērtību 44.

Abos gadījumos aprēķinātā vērtība automātiski mainās, ja tiek mainītas argumentu vērtības (piemēram, skaitlis šūnā A1 vai Slider1vērtība).

Līdzīgi varat izmantot formulas, lai piekļūtu datiem un manipulētu ar datiem tabulās un ierakstos. Tabulu nosaukumus varat izmantot kā argumentus dažās formulās, piemēram, Min(Katalogs, Cena), lai rādītu zemāko vērtību kolonnā Cena tabulā Katalogs. Citas formulas kā atgrieztās vērtības sniedz veselas tabulas, piemēram, RenameColumns(Katalogs, “Cena”, “Izmaksas”), kas parāda visus tabulas Katalogs ierakstus, bet maina kolonnas Cena nosaukumu Izmaksas.

Līdzīgi kā ar skaitļiem, arī formulas, kurās ir iesaistītas tabulas un ieraksti, tiek automātiski pārrēķinātas, mainoties pamatā esošajām tabulām vai ierakstiem. Ja produkta izmaksas tabulā Katalogs tiek samazinātas zem iepriekšējās minimālās vērtības, formulas Min uzrādītā vērtība tiek automātiski mainīta atbilstoši tai.

Tabulas funkcijas un vadīklu rekvizīti

Ņemiet vērā funkciju Lower. Ja mainīgajā sveiciens ir ietverta teksta virkne “Sveika, Pasaule”, tad formula Lower( sveiciens ) parāda “sveika, pasaule”. Šī funkcija nekādā veidā nemaina šī mainīgā vērtību. Lower ir tīra funkcija, jo tā apstrādā tikai ievadi un ģenerē izvadi. Tas ir viss; neko citu tā neietekmē. Visas funkcijas programmā Excel un vairums funkciju programmā Power Fx ir tīras funkcijas, kas ļauj automātiski pārrēķināt darbgrāmatu vai programmu.

Programmā Power Fx tiek piedāvāta funkciju kopa, kas darbojas ar tabulām tādā pašā veidā. Šīs funkcijas izmanto tabulas kā ievadi un filtrē, kārto, transformē, samazina un apkopo veselas datu tabulas. Faktiski funkcija Lower un daudzas citas funkcijas, kas parasti izmanto vienu vērtību, kā ievadi var izmantot arī tabulu ar vienu kolonnu.

Daudzas funkcijas ievada vienu kolonnu tabulu. Ja visai tabulai ir tikai viena kolonna, to var norādīt pēc nosaukuma. Ja tabulai ir vairākas kolonnas, varat norādīt vienu no šīm kolonnām, izmantojot sintaksi Tabula.Kolonna. Piemēram, Produkti.Nosaukumi parāda tikai vērtības Nosaukums no tabulas Produkti.

Tomēr tabulu var pilnīgi pārveidot, izmantojot funkcijas AddColumns, RenameColumns, ShowColumns vai DropColumns. Turklāt šīs funkcijas maina tikai izvadi, nevis avotu.

Uzvedības formulas

Citas funkcijas ir īpaši paredzētas datu modificēšanai, un tām ir papildu ietekme. Tā kā šīs funkcijas nav tīras, tās ir jāveido uzmanīgi, un tās nevar piedalīties automātiskā vērtību pārrēķināšana programmā. Šīs funkcijas varat izmantot vienīgi uzvedības formulās.

Ieraksta tvērums

Dažas funkcijas darbojas, novērtējot formulu visos tabulas ierakstos atsevišķi. Formulas rezultāts tiek izmantots dažādos veidos.

  • AddColumns — formula sniedz pievienotā lauka vērtību.
  • Average, Max, Min, Sum, StdevP, VarP — formula sniedz vērtību agregātam.
  • Filter, Lookup — formula nosaka, vai ieraksts ir jāiekļauj izvadē.
  • Concat— formula nosaka virknes, ko savienot kopā.
  • Distinct — formula parāda vērtību, ko izmanto ierakstu dublikātu identificēšanai.
  • ForAll — formula var parādīt jebkuru vērtību, iespējams, ar blakus iedarbību.
  • Sort — formula nodrošina vērtību, pēc kuras kārtot ierakstus.
  • With — formula var parādīt jebkuru vērtību, iespējams, ar blakus iedarbību.

Šajās formulās varat norādīt apstrādājamā ieraksta laukus. Katra no šīm funkcijām veido “ieraksta tvērumu”, kurā formula tiek novērtēta, kurā ieraksta lauki ir pieejami kā augstākā līmeņa identifikatori. Varat meklēt arī pēc vadīklas rekvizītiem un citām visā programmā pieejamajām vērtībām.

Piemēram, ņemiet Produktu tabulu, kas atrodas globālajā mainīgajā:

Pieprasītās tabulas.

Set( Products,
    Table(
        { Product: "Widget",    'Quantity Requested': 6,  'Quantity Available': 3 },
        { Product: "Gadget",    'Quantity Requested': 10, 'Quantity Available': 20 },
        { Product: "Gizmo",     'Quantity Requested': 4,  'Quantity Available': 11 },
        { Product: "Apparatus", 'Quantity Requested': 7,  'Quantity Available': 6 }
    )
)

Lai noteiktu, vai kādam no šiem produktiem ir lielāks pieprasījums nekā pieejamība:

Filter( Products, 'Quantity Requested' > 'Quantity Available' )

Pirmais Filtra arguments ir to ierakstu tabula, ar ko jāveic darbības, un otrais arguments ir formula. Filtrs izveido ieraksta tvērumu šīs formulas novērtēšanai, kurā ir pieejami katra ieraksta lauki, šajā gadījumā — Produkts, Pieprasītais daudzumsun Pieejamais daudzums. Salīdzinājuma rezultāts nosaka, vai katram ierakstam ir jābūt iekļautam funkcijas rezultātā:

Nepieciešamas tabulas.

Papildinot šo piemēru, varam aprēķināt, cik daudz katra produkta jāpasūta:

AddColumns( 
    Filter( Products, 'Quantity Requested' > 'Quantity Available' ), 
    "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
)

Pievienojam rezultātam aprēķinātu kolonnu. Formulai AddColumns ir savs ieraksta tvērums, ko tā izmanto, lai aprēķinātu starpību starp pieprasītajiem un pieejamajiem produktiem.

Pievienojiet kolonnas.

Visbeidzot, varam samazināt rezultātu tabulu, rādot tikai tās kolonnas, ko vēlamies apskatīt:

ShowColumns(
    AddColumns(
        Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
        "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
    ),
    "Product",
    "Quantity To Order"
)

Tikai pasūtīt.

Ņemiet vērā, ka iepriekš minētajā piemērā dažās vietās izmantojām dubultās pēdiņas ("), bet citās — vienpēdiņas ('). Vienpēdiņas jāizmanto, norādot objekta, piemēram, lauka vai tabulas, vērtību, kad objekta nosaukumā ir atstarpe. Dubultās pēdiņas izmanto, ja netiek nenorāda objekta vērtību, bet gan runā par to, jo īpaši situācijās, kad objekts vēl nepastāv, kā tas ir gadījumā ar AddColumns.

Neviennozīmība

Ar ierakstu tvērumu pievienotie lauku nosaukumi ignorē tos pašus nosaukumus, kas ir citur programmā. Šādā gadījumā joprojām varat piekļūt vērtībām, kas neatrodas ieraksta tvērumā, izmantojot @ neviennozīmības operatoru:

  • Lai piekļūtu vērtībām no ligzdotiem ieraksta tvērumiem, izmantojiet @ operatoru ar tās tabulas nosaukumu, kas tiek darbināta, izmantojot šo shēmu:
    Tabula[@FieldName]
  • Lai piekļūtu globālām vērtībām, piemēram, datu avotiem, kolekcijām un konteksta mainīgajiem, izmantojiet shēmu [@ObjectName] (bez tabulas apzīmējuma).

Ja izmantotā tabula ir izteiksme, piemēram, Filter(Table, ... ), tad nevar izmantot neviennozīmības operatoru. Tikai iekšējais ieraksta tvērums var piekļūt šīs tabulas izteiksmes laukiem, neizmantojot neviennozīmības operatoru.

Piemēram, iedomājieties, ka jums ir kolekcija X:

X vērtība.

Šo kolekciju varat izveidot, izmantojot ClearCollect( X, [1, 2] ).

Ir arī cita kolekcija — Y:

Y vērtība.

Šo kolekciju varat izveidot, izmantojot ClearCollect( Y, ["A", "B"] ).

Turklāt definējiet konteksta mainīgo ar nosaukumu Vērtība, izmantojot šādu formulu: UpdateContext( {Vērtība: "!"} )

Apkoposim visas zināšanas. Šajā kontekstā šāda formula:

Ungroup(
    ForAll( X,
        ForAll( Y,
            Y[@Value] & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

izveido šo tabulu:

XY vērtība.

Kas šeit notiek? Ārējā funkcija ForAll definē X ieraksta tvērumu, kas ļauj piekļūt katra ieraksta laukam Vērtība, kad tas tiek apstrādāts. Tam var piekļūt, vienkārši izmantojot vārdu Vērtība vai izmantojot X[@Vērtība].

Iekšējā funkcija ForAll definē citu Y ieraksta tvērumu. Tā kā arī šai tabulai ir definēts lauks Vērtība, lauka Vērtība izmantošana norāda uz lauku Yierakstā, bet ne uz X lauku. Šajā gadījumā, lai piekļūtu Xlaukam Vērtība, mums jāizmanto garā versija ar neviennozīmības operatoru.

Tā kā Y ir iekšējais ieraksta tvērums, lai piekļūtu šīs tabulas laukiem, nav nepieciešama neviennozīmība, kas mums ļauj izmantot šo formulu, iegūstot tādu pašu rezultātu:

Ungroup(
    ForAll( X,
        ForAll( Y,
            Value & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

Visi ForAll ierakstu tvērumi pārlabo globālo tvērumu. Mūsu definētais konteksta mainīgais Vērtība nav pieejams pēc nosaukuma bez neviennozīmības operatora. Lai piekļūtu šai vērtībai, izmantojiet [@Value].

Funkcija Ungroup apvieno rezultātu, jo ligzdotas funkcijas ForAll izveido ligzdotu rezultātu tabulu.

Vienas kolonnas tabulas

Lai darbotos vienā tabulas kolonnā, izmantojiet funkciju ShowColumns, kā parādīts piemērā.

ShowColumns( Products, "Product" )

Šī formula izveido šo vienas kolonnas tabulu:

Viena kolonna.

Īsāka iespēja ir norādīt Table.Column, kas izgūst vienas kolonnas tabulu tikai ar kolonnu Kolonna no tabulas Tabula. Piemēram, šī formula izveido tieši tādu pašu rezultātu kā izmantojot ShowColumns.

Products.Product

Iekļautie ieraksti

Ieraksti tiek izteikti, izmantojot figūriekavas, kurās ir nosauktas lauku vērtības. Piemēram, varat izteikt pirmo ierakstu tabulā, kas aprakstīta šīs tēmas sākumā, izmantojot šo formulu:

{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 }

Formulas varat iegult arī citās formulās, kā parādīts šajā piemērā:

{ Name: First(Products).Name, Price: First(Products).Price * 1.095 }

Ierakstus var ligzdot, ligzdojot figūriekavas, kā parādīts šajā piemērā:

{ 'Quantity': { 'OnHand': ThisItem.QuantOnHand, 'OnOrder': ThisItem.QuantOnOrder } }

Ievietojiet katru kolonnas nosaukumu, kurā ir īpašā rakstzīme, piemēram, atstarpe vai kols, atsevišķās pēdiņās. Lai kolonnas nosaukumā izmantotu vienpēdiņu, ievadiet to dubultā.

Ņemiet vērā, ka vērtība kolonnā Cena neietver valūtas simbolu, piemēram, dolāra zīmi. Šis formatējums tiek piemērots, kad tiek attēlota vērtība.

Iekļautās tabulas

Tabulu var izveidot, izmantojot funkciju Table un ierakstu kopu. Varat izteikt tabulu, kas aprakstīta šīs tēmas sākumā, izmantojot šo formulu:

Table( 
	{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 },
	{ Name: "Bread", Price: 4.95, 'Quantity on Hand': 34, 'Quantity on Order': 0 },
	{ Name: "Water", Price: 4.95, 'Quantity on Hand': 10, 'Quantity on Order': 0 } 
)

Varat arī ligzdot tabulas:

Table( 
	{ Name: "Chocolate", 
	  'Quantity History': Table( { Quarter: "Q1", OnHand: 10, OnOrder: 10 },
	                             { Quarter: "Q2", OnHand: 18, OnOrder: 0 } ) 
	}
)

Iekļautās vērtību tabulas

Varat izveidot vienas kolonnas tabulas, norādot vērtības kvadrātiekavās. Iegūtajai tabulai ir viena kolonna ar nosaukumu Vērtība.

Piemēram, [ 1, 2, 3, 4 ] ir ekvivalenta Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ), un parāda šo tabulu:

Iekļauta tabula.