Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
Hesaplanan sütun
Hesaplanan tablo
Ölçmek
Görsel hesaplama
Verilen aralık içinde konumlandırılan birden çok satır döndürür.
Sözdizimi
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametreler
| Süre | Tanım |
|---|---|
from |
Pencerenin nerede başladığını gösterir. Skaler değer döndüren herhangi bir DAX ifadesi olabilir.
Davranış, from_type parametresine bağlıdır: - from_type REL ise, penceredeki ilk satırı almak için geçerli satırdan geri döndürülecek satır sayısı (negatif değer) veya ileri (pozitif değer).
- ise from_typeABSve from pozitifse, bölümün başından itibaren pencerenin başlangıcının konumudur. Dizin oluşturma 1 tabanlıdır ve 0 1 olarak yorumlanır. Örneğin, 0 ve 1, pencerenin bölümün başından başladığı anlamına gelir. Negatifse from , bölümün sonundaki pencerenin başlangıcının konumudur. -1, bölümdeki son satır anlamına gelir. |
from_type |
from parametresinin davranışını değiştirir. Olası değerler ABS (mutlak) ve REL (göreli) değerleridir. Varsayılan değer REL'dir. |
to |
fromile aynıdır, ancak pencerenin sonunu gösterir. Son satır pencereye eklenir. |
to_type |
from_typeile aynıdır, ancak todavranışını değiştirir. |
relation |
(İsteğe bağlı) Çıkış satırlarının döndürüldiği tablo ifadesi. Görsel hesaplamalarda kullanılırsa, bu parametre görsel şeklindeki bir ekseni kabul eder.
Belirtilirse, partitionBy içindeki tüm sütunlar bu sütundan veya ilişkili bir tablodan gelmelidir.
Belirtilmezse: - Açıkça belirtmelisiniz orderBy .- Tüm orderBy ve partitionBy ifadeler tam sütun adları olmalı ve tek bir tablodan gelmelidir.
- varsayılan olarak ALLSELECTED ve orderBytüm sütunların partitionBy() olarak ayarlanır. |
orderBy |
(İsteğe bağlı) Her bölümün nasıl sıralanacağını tanımlayan ifadeleri içeren bir ORDERBY() yan tümcesi.
Belirtilmezse: - Açıkça belirtmelisiniz relation .
- içinde önceden belirtilmemiş partitionByolan her sütuna relation göre sıralama varsayılanlarıdır. |
blanks |
(İsteğe bağlı) relation veya axissıralarken boş değerlerin nasıl işleneceğini tanımlayan bir numaralandırma.
Desteklenen değerler şunlardır:
Tek tek ifadelerde () işlevinde ORDERBY hem parametreyi blanks hem de boşlukları belirttiğinizde, blanks tek tek orderBy ifadesinde ilgili orderBy ifadesi için öncelik alınır. Belirtilmeden OrderBy ifadeleri blanks , üst işlevdeki parametresine göre blanks belirlenir. |
partitionBy |
(İsteğe bağlı) PARTITIONBY yan tümcesi. Atlanırsa, relation tek bir bölüm olarak değerlendirilir. |
matchBy |
(İsteğe bağlı) MATCHBY Verileri eşleştirmeyi ve geçerli satırı tanımlamayı tanımlayan sütunları içeren () yan tümcesi. |
reset |
(İsteğe bağlı) Yalnızca görsel hesaplamalarda kullanılabilir. Hesaplamanın sıfırlanıp sıfırlanmayacağını ve görsel şeklin sütun hiyerarşisinin hangi düzeyinde olduğunu gösterir. Kabul edilen değerler şunlardır: geçerli görsel şeklindeki bir sütuna, NONE (varsayılan), LOWESTPARENT, HIGHESTPARENTveya tamsayıya yönelik alan başvurusu. Davranış, tamsayı işaretine bağlıdır: - Sıfır veya atlanırsa, hesaplama sıfırlanır. NONEeşdeğerdir.
- Pozitifse, tamsayı en yüksekten başlayıp tahıldan bağımsız olarak sütunu tanımlar. HIGHESTPARENT 1'e eşdeğerdir.
- Negatifse, tamsayı geçerli dilime göre en düşükten başlayan sütunu tanımlar. LOWESTPARENT -1 ile eşdeğerdir. |
Dönüş değeri
Penceredeki tüm satırlar.
Açıklamalar
Tablo işlevleri tarafından DAX eklenen sütunlar dışında, relation üzerinde çalışılan geçerli satırı tanımlamaya yardımcı olmak için içindeki her sütunun (matchBymevcut olmadığında) veya ve partitionBy içindeki matchBy her sütunun (mevcut olduğundamatchBy) karşılık gelen bir dış değeri olmalıdır. ve to_type her ikisinin de değeri ABSvarsafrom_type, aşağıdakiler yalnızca sütunlar için partitionBy geçerlidir:
- Tam olarak bir karşılık gelen dış sütun varsa, değeri kullanılır.
- Karşılık gelen dış sütun yoksa:
- WINDOW önce, karşılık gelen dış sütunu olmayan tüm sütunları belirler.
- 'nin üst bağlamındaki WINDOW bu sütunlar WINDOWiçin var olan değerlerin her birleşimi için değerlendirilir ve karşılık gelen satırlar döndürülür.
- WINDOW'nin son çıkışı bu satırların birleşimidir.
- Birden fazla karşılık gelen dış sütun varsa bir hata döndürülür.
tüm relationsütunları DAX tablo işlevleri tarafından eklendiyse bir hata döndürülür.
varsamatchBy, WINDOW satırı tanımlamak için ve partitionBy sütunlarını kullanmaya matchBy çalışır.
yoksa ve içinde belirtilen sütunlar partitionBy içindeki her satırı relationbenzersiz olarak tanımlayamazsamatchBy:orderBy
- WINDOW her satırı benzersiz olarak tanımlamak için gereken en az sayıda ek sütun bulmaya çalışır.
- Bu tür sütunlar bulunabiliyorsa, WINDOW bu yeni sütunları otomatik olarak öğesine
orderByekler ve her bölüm bu yeni orderBy sütunları kümesi kullanılarak sıralanır. - Bu tür sütunlar bulunamazsa bir hata döndürülür.
Şu durumda boş bir tablo döndürülür:
- Bir veya
partitionBysütunununorderBykarşılık gelen dış değeri içinderelationyok. - Tüm pencere bölümün dışındadır veya pencerenin başlangıcı sonundan sonradır.
ile aynı tabloda relationtanımlanan bir hesaplanmış sütun içinde kullanıyorsanız WINDOW ve orderBy atlanırsa bir hata döndürülür.
Pencerenin başlangıcı ilk satırdan önceyse, ilk satıra ayarlanır. Benzer şekilde, pencerenin sonu bölümün son satırından sonraysa, son satıra ayarlanır.
Yalnızca görsel hesaplamalarda kullanabilirsiniz reset ve veya partitionByile birlikte orderBy kullanamazsınız. varsa reset belirtebilirsiniz ancak belirtemezsiniz axisrelation.
değeri reset mutlaksa (pozitif bir tamsayı, HIGHESTPARENTveya bir alan başvurusu) ve hesaplama hiyerarşideki hedef düzeyde veya üstünde değerlendirilirse, hesaplama her öğe için sıfırlanır. Diğer bir ifadeyle, işlev yalnızca belirli bir öğeyi içeren bir bölüm içinde değerlendirilir.
Bu makaledeki örnekler örnek Adventure Works DW 2020 Power BI Desktop modeliyle kullanılabilir. Modeli almak için bkz.örnek modeli
Örnek 1 - ölçü
Aşağıdaki ölçü:
3-day Average Price =
AVERAGEX (
WINDOW (
-2,
REL,
0,
REL,
SUMMARIZE ( ALLSELECTED ( 'Sales' ), 'Date'[Date], 'Product'[Product] ),
ORDERBY ( 'Date'[Date] ),
KEEP,
PARTITIONBY ( 'Product'[Product] )
),
CALCULATE ( AVERAGE ( Sales[Unit Price] ) )
)
Her ürün için birim fiyatların 3 günlük ortalamasını döndürür. 3 günlük zaman aralığı, ürünün satış yaptığı üç günden oluşur; birbirini izleyen üç takvim günü olması gerekmez.
Örnek 2 - ölçü
Aşağıdaki ölçü:
RunningSum =
SUMX (
WINDOW (
1,
ABS,
0,
REL,
ALLSELECTED ( 'Date'[Fiscal Year], 'Date'[Month Number Of Year] ),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Her Mali Yıl için yeniden başlatılarak, Yılın Ay Sayısına Göre Toplam Satışlar için çalışan toplamı döndürür:
| Yıl | Yılın Ay Sayısı | Satış Tutarı | RunningSum |
|---|---|---|---|
| FY2018 | 1 | $1,327,675 | $1,327,675 |
| FY2018 | 2 | $3,936,463 | $5,264,138 |
| FY2018 | 3 | 700.873 ABD doları | 5.965.011 ABD doları |
| FY2018 | 4 | $1,519,275 | $7,484,286 |
| FY2018 | 5 | 2.960.378 ABD doları | $10,444,664 |
| FY2018 | 6 | 1.487.671 ABD doları | 11.932.336 ABD doları |
| FY2018 | 7 | $1,423,357 | 13.355.693 ABD doları |
| FY2018 | 8 | 2.057.902 ABD doları | 15.413.595 $ |
| FY2018 | 9 | 2.523.948 ABD doları | 17.937.543 DOLAR |
| FY2018 | 10 | 561.681 ABD doları | 18.499.224 ABD doları |
| FY2018 | 11 | 4.764.920 ABD doları | $23,264,145 |
| FY2018 | 12 | $596,747 | 23.860.891 ABD doları |
| FY2019 | 1 | 1.847.692 ABD doları | 1.847.692 ABD doları |
| FY2019 | 2 | 2.829.362 ABD doları | $4,677,054 |
| FY2019 | 3 | 2.092.434 ABD doları | 6.769.488 ABD doları |
| FY2019 | 4 | 2.405.971 ABD doları | $9,175,459 |
| FY2019 | 5 | $3,459,444 | 12.634.903 ABD doları |
| FY2019 | 6 | 2.850.649 ABD doları | 15.485.552 $ |
| FY2019 | 7 | 2.939.691 ABD doları | 18.425.243 ABD doları |
| FY2019 | 8 | 3.964.801 ABD doları | 22.390.045 ABD doları |
| FY2019 | 9 | 3.287.606 ABD doları | 25.677.650 DOLAR |
| FY2019 | 10 | $2,157,287 | 27.834.938 ABD doları |
| FY2019 | 11 | 3.611.092 ABD doları | 31.446.030 ABD doları |
| FY2019 | 12 | 2.624.078 ABD doları | 34.070.109 ABD doları |
| FY2020 | 1 | $3,235,187 | $3,235,187 |
| FY2020 | 2 | 4.070.046 ABD doları | $7,305,233 |
| FY2020 | 3 | $4,429,833 | 11.735.066 ABD doları |
| FY2020 | 4 | 4.002.614 ABD doları | 15.737.680 ABD doları |
| FY2020 | 5 | $5,265,797 | 21.003.477 ABD doları |
| FY2020 | 6 | $3,465,241 | 24.468.717 ABD doları |
| FY2020 | 7 | $3,513,064 | 27.981.781 ABD doları |
| FY2020 | 8 | $5,247,165 | 33.228.947 ABD doları |
| FY2020 | 9 | 5.104.088 ABD doları | 38.333.035 ABD doları |
| FY2020 | 10 | $3,542,150 | $41,875,184 |
| FY2020 | 11 | $5,151,897 | 47.027.081 ABD doları |
| FY2020 | 12 | $4,851,194 | 51.878.275 ABD doları |
Örnek 3 - görsel hesaplama
Aşağıdaki görsel hesaplama DAX sorgusu:
TotalSalesRunningSumByYear =
SUMX ( WINDOW ( 0, ABS, 0, REL, ROWS, HIGHESTPARENT ), [SalesAmount] )
Her yıl boyunca hesaplanan aya göre toplam satışları döndürür. 1 değeri aynı sonuçla yerine HIGHESTPARENTkullanılabilir.
Aşağıdaki ekran görüntüsünde görsel matris ve görsel hesaplama ifadesi gösterilmektedir:
görsel hesaplama
Örnek 4 - görsel hesaplama
Aşağıdaki görsel hesaplama DAX sorgusu:
TotalSalesRunningSumByQuarter =
SUMX ( WINDOW ( 0, ABS, 0, REL,, -1 ), [SalesAmount] )
Her üç aylık dönem boyunca hesaplanan aya göre toplam satışları döndürür.
Değer LOWESTPARENT aynı sonuçla -1 yerine kullanılabilir.