Only() retourneert een waarde als er één, en niet meer dan één, mogelijk resultaat is voor de geaggregeerde gegevens. Als u bijvoorbeeld zoekt naar het enige product waarvan de prijs per eenheid =9 en er zijn meerdere producten met een prijs per eenheid van 9, dan wordt het resultaat NULL geretourneerd.
De uitdrukking die of het veld dat de gegevens bevat die moeten worden gemeten.
SetExpression
De aggregatiefunctie aggregeert standaard over de set mogelijke records die wordt gedefinieerd door de selectie. Met de uitdrukking Set-analyse kunt u een alternatieve set records definiëren.
TOTAL
Als het woord TOTAL voor de functieargumenten staat, wordt de berekening gemaakt op basis van alle mogelijke waarden bij de huidige selecties, en niet alleen de selecties die betrekking hebben op de huidige dimensiewaarde. Dit betekent dat de dimensies van het diagram worden genegeerd.
Wanneer u TOTAL [<fld {.fld}>] gebruikt en de TOTAL-kwalificatie wordt gevolgd door een lijst van één of meer veldnamen als subset van de dimensievariabelen van het diagram, maakt u een subset van de totale mogelijke waarden.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel met de volgende metingen:
=Only({<UnitPrice={9}>} Product), om de enige Product te berekenen die een UnitPrice van 9 heeft.
=Only({<Product={DD}>} Customer), om de enige Customer te berekenen die een Product genaamd DD verkoopt.
=Only({<UnitPrice={20}>} UnitSales), om het aantal UnitSales te berekenen waarbij UnitPrice20 is.
=Only({<UnitPrice={15}>} UnitSales), om de waarden van UnitSales te berekenen waarbij de UnitPrice = 15 is.
Results table
Only({<UnitPrice={9}>} Product)
Only({<Product={DD}>} Customer)
Only({<UnitPrice={20}>} UnitSales)
Only({<UnitPrice={15}>} UnitSales)
BB
Betacab
2
-
Volg in dit voorbeeld het volgende:
De eerste kolom retourneert de waarde BB omdat dit het enige Product is dat een UnitPrice van 9 heeft.
De tweede kolom retourneert Betacab, omdat dit de enige Customer is die een Product verkoopt met de naam DD.
De derde kolom retourneert 2 omdat dit de enige waarde van UnitSales is waarbij UnitPrice = 20 is.
De vierde kolom retourneert NULL omdat er geen enkel resultaat is waarbij UnitPrice = 15 is. In deze gegevensverzameling zijn er twee waarden van UnitSales waarbij de UnitPrice =15 is.
Voorbeeld 5 – Scenario met Only
Overzicht
Een gegevensverzameling bevat productverkopen per periode. Het bedrijf wil bepalen of een product in één winkel of in meerdere winkels wordt verkocht.
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensverzameling die wordt geladen in een tabel met de naam Example.
De volgende velden in de gegevenstabel:
Date
RecordID
StoreProduct
Sales
Load-script
Example:
Load * inline [
Date, RecordID, StoreProduct, Sales, Store
2024-01-01, 1, Apple, 100, A
2024-01-15, 2, Banana, 80, B
2024-01-30, 3, Carrot, 50, C
2024-02-05, 4, Apple, 120, A
2024-02-20, 5, Banana, 90, B
2024-02-28, 6, Carrot, 60, D
2024-03-10, 7, Apple, 110, A
2024-03-22, 8, Banana, 85, B
2024-03-31, 9, Carrot, 55, C
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:
StoreProduct
Maak de volgende metingen:
=Only(Store), om de unieke winkel te berekenen waar het product wordt verkocht.
=If(IsNull(Only(Store)), 'Multiple Stores', 'Single Store'), om te berekenen of het product in één winkel of in meerdere winkels wordt verkocht.
=Sum(Sales), om de totale productverkoop te berekenen.
De resultaten geven aan dat Apples en Bananas slechts in één winkel worden verkocht, terwijl Carrots in meerdere winkels wordt verkocht.
Voorbeeld - Geavanceerd scenario om een tabel met records voor één maand te maken
Overzicht
Dit voorbeeld gebruikt de functie Only om een regel-voor-regel tabel met records voor een enkele maand weer te geven. Om dit te bereiken, wordt set-analyse gebruikt om het bereik van ed gewenste recordverzameling te bepalen. Voor set-analyse is ten minste één meting nodig, maar omdat we de recordverzameling niet echt hoeven te aggregeren, kunnen we de aggregatiefunctie Only effectief gebruiken om het bereik van de set-analyse te hosten.
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensverzameling die wordt geladen in een tabel met de naam Example.
Een voorafgaande LOAD-instructie die het veld MonthYear afleidt van het veld Date door de dag van de maand in te korten met behulp van de functie MonthStart en een datumweergave van de 1e van elke maand te retourneren. Dit resultaat wordt doorgegeven aan de functie Date om het weergaveformaat in te stellen op MMM YY, bijvoorbeeld Jan 24.
De volgende velden in de gegevenstabel:
Date
RecordID
StoreProduct
Sales
Store
Load-script
Example:
Load
*,
date(MonthStart (Date),'MMM YY') AS MonthYear
inline [
Date, RecordID, StoreProduct, Sales, Store
2024-01-01, 1, Apple, 100, A
2024-01-15, 2, Banana, 80, B
2024-01-30, 3, Carrot, 50, C
2024-02-05, 4, Apple, 120, A
2024-02-20, 5, Banana, 90, B
2024-02-28, 6, Carrot, 60, D
2024-03-10, 7, Apple, 110, A
2024-03-22, 8, Banana, 85, B
2024-03-31, 9, Carrot, 55, C
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
MonthYear
RecordID
Date
StoreProduct
Store
Maak de volgende metingen:
=Only({$<MonthYear={'$(=MaxString(MonthYear))'}>} Sales), om de waarde Sales te evalueren en alleen die waarden te retourneren waarbij MonthYear de laatste (meest recente) MonthYear is die beschikbaar is, gebaseerd op de huidige selecties in de tabel. De uitbreiding met dollarteken ($) voert een inline berekening uit met de functie MaxString, $(=MaxString(MonthYear)), die de tekstweergave van de laatste MonthYear waarde teruggeeft.
InformatiePogingen om MonthYear te filteren op basis van de numerieke weergave, bijvoorbeeld met behulp van de functie Max , Max(MonthYear), zouden geen resultaat opleveren. Set-analyse past filterselecties toe die alleen gebaseerd zijn op de tekstweergave van een dubbel gegevenstype; een gegevenstype met een numerieke en tekstweergave zoals een Date.
De uitvoer van de functie Only produceert een tabel met records die standaard de verkoopwaarde weergeeft voor de laatste, of meest recente, MonthYear die beschikbaar is in de gegevens. Als u in de kolom MonthYear een eerdere maand selecteert, zoals Feb 24, verschijnt de laatste verkoopwaarde voor die maand.
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!