DAX kullanımıyla ilgili temel bilgileri Power BI Desktop’ta kullanmaApply DAX basics in Power BI Desktop

Bu makale, Power BI Desktop'ı kullanmaya yeni başlayan kullanıcılara yöneliktir.This article is for users new to Power BI Desktop. Bir dizi temel hesaplama ve veri çözümleme sorununu çözmek için Veri Çözümleme İfadeleri'ni (DAX) nasıl kullanabileceğinize ilişkin hızlı ve anlaşılır bir açıklama sunmaktadır.It gives you a quick and easy introduction on how you can use Data Analysis Expressions (DAX) to solve a number of basic calculation and data analysis problems. Bazı kavramsal bilgileri, gerçekleştirebileceğiniz bir dizi görevi inceleyeceğiz ve öğrendiklerinizi sınamaya yönelik bilgi kontrolü gerçekleştireceğiz.We’ll go over some conceptual information, a series of tasks you can complete, and a knowledge check to test what you’ve learned. Bu makaleyi tamamladıktan sonra DAX'taki en temel kavramları iyi bir şekilde anlamış olacaksınız.After completing this article, you should have a good understanding of the most important fundamental concepts in DAX.

DAX nedir?What is DAX?

DAX, hesaplama yapmak ve bir veya daha fazla değer döndürmek için bir formülde veya ifadede kullanılabilen işlevlerden, işleçlerden ve sabitlerden oluşan bir koleksiyondur.DAX is a collection of functions, operators, and constants that can be used in a formula, or expression, to calculate and return one or more values. Daha basit bir şekilde ifade etmek gerekirse DAX, modelinizde zaten bulunan verilerden yeni bilgiler oluşturmanıza yardımcı olur.Stated more simply, DAX helps you create new information from data already in your model.

DAX neden bu kadar önemlidir?Why is DAX so important?

Yeni bir Power BI Desktop dosyası oluşturup bu dosyaya veri aktarmak kolaydır.It’s easy to create a new Power BI Desktop file and import some data into it. Hatta hiçbir DAX formülü kullanmadan değerli öngörüler sunan raporlar da oluşturabilirsiniz.You can even create reports that show valuable insights without using any DAX formulas at all. Peki ya ürün kategorilerinde farklı tarih aralıklarında gözlemlenen büyüme yüzdesini çözümlemeniz gerekseydi?But, what if you need to analyze growth percentage across product categories and for different date ranges? Yıldan yıla büyümeyi pazar eğilimleriyle karşılaştırarak hesaplamanız gerekse ne yapardınız?Or, you need to calculate year-over-year growth compared to market trends? DAX formülleri, bu tür görevleri gerçekleştirmeye yarayan becerilerin yanı sıra başka pek çok önemli işlev de sunar.DAX formulas provide this capability and many other important capabilities as well. Etkili DAX formülleri oluşturmayı öğrenmek, verilerinizden en iyi şekilde yararlanmanıza yardımcı olur.Learning how to create effective DAX formulas will help you get the most out of your data. İhtiyaç duyduğunuz bilgileri elde ettiğinizde, nihai kâr-zarar dengenizi etkileyen gerçek iş sorunlarını çözmeye başlayabilirsiniz.When you get the information you need, you can begin to solve real business problems that affect your bottom line. Power BI bu güce sahiptir, DAX ise onu kullanmanıza yardımcı olur.This is the power of Power BI, and DAX will help you get there.

ÖnkoşullarPrerequisites

Microsoft Excel'de formül oluşturma konusuna zaten aşina olabilirsiniz.You might already be familiar with creating formulas in Microsoft Excel. DAX'ı anlama konusunda bu bilgilerden yararlanabilirsiniz ancak Excel formülleri konusunda hiç deneyiminiz olmasa bile burada açıklanan kavramlar, DAX formülleri oluşturmaya ve gerçek dünyadaki BI sorunlarını hemen çözmeye başlamanıza yardımcı olacaktır.That knowledge will be helpful in understanding DAX, but even if you have no experience with Excel formulas, the concepts described here will help you get started creating DAX formulas and solving real-world BI problems right away.

Hesaplamalarda, özellikle de ölçülerde ve hesaplanmış sütunlarda kullanılan DAX formüllerini anlamaya odaklanacağız.We’ll focus on understanding DAX formulas used in calculations, more specifically, in measures and calculated columns. Power BI Desktop kullanma, veri içeri aktarma ve bir rapora alan ekleme konularının yanı sıra Ölçüler ve Hesaplanmış sütunlar ile ilgili temel kavramlar hakkında zaten sahibi olmanız gerekir.You should already be familiar with using Power BI Desktop to import data and add fields to a report, and you should also be familiar with fundamental concepts of Measures and Calculated columns.

Örnek çalışma kitabıExample workbook

DAX'ı öğrenmenin en iyi yolu, bazı temel formüller oluşturmanız, bunları gerçek verilerle kullanmanız ve sonuçları kendiniz görmenizdir.The best way to learn DAX is to create some basic formulas, use them with actual data, and see the results for yourself. Buradaki örneklerde ve görevlerde Power BI Desktop için Contoso Sales örneği dosyası kullanılmaktadır.The examples and tasks here use the Contoso Sales Sample for Power BI Desktop file. Bu örnek dosya, Öğretici: Power BI Desktop'ta kendi ölçülerinizi oluşturma makalesinde kullanılan örnek dosyanın aynısıdır.This sample file is the same one used in the Tutorial: Create your own measures in Power BI Desktop article.

Haydi başlayalım!Let's begin!

DAX'a ilişkin kavrayışımızı üç temel kavram etrafında şekillendireceğiz: Söz dizimi, İşlevler ve Bağlam.We'll frame our understanding of DAX around three fundamental concepts: Syntax, Functions, and Context. DAX'ta başka önemli kavramlar da bulunmaktadır ancak bu üç kavramı anlamak, DAX becerilerinizi oluşturmak için en iyi temeli sağlayacaktır.There are other important concepts in DAX, but understanding these three concepts will provide the best foundation on which to build your DAX skills.

Söz dizimiSyntax

Kendi formüllerinizi oluşturmadan önce DAX formül söz dizimine bir göz atalım.Before you create your own formulas, let’s take a look at DAX formula syntax. Söz dizimi, bir formülü oluşturan veya daha basit bir şekilde açıklamak gerekirse, formülün nasıl yazıldığına ilişkin çeşitli öğeleri içerir.Syntax includes the various elements that make up a formula, or more simply, how the formula is written. Örneğin, bir ölçüye yönelik basit bir DAX formülü aşağıda verilmiştir:For example, here's a simple DAX formula for a measure:

DAX formülü söz dizimi

Bu formül, aşağıdaki söz dizimi öğelerini içerir:This formula includes the following syntax elements:

A.A. Ölçü adı: Total Sales.The measure name, Total Sales.

B.B. Formülün başlangıcını gösteren eşittir işareti işleci ( = ).The equals sign operator (=), which indicates the beginning of the formula. Hesaplama gerçekleştirildiğinde bir sonuç döndürür.When calculated, it will return a result.

C.C. Sales[SalesAmount] sütunundaki tüm sayıları toplayan DAX işlevi SUM.The DAX function SUM, which adds up all of the numbers in the Sales[SalesAmount] column. İlerleyen bölümlerde işlevler hakkında daha fazla bilgi edineceksiniz.You’ll learn more about functions later.

D.D. Bir veya daha fazla bağımsız değişken içeren ifadeyi içine alan ayraçlar () .Parenthesis (), which surround an expression that contains one or more arguments. Tüm işlevler için en az bir bağımsız değişken gereklidir.All functions require at least one argument. Bağımsız değişken, bir işleve değer geçirir.An argument passes a value to a function.

E.E. Başvurulan tablo: Sales.The referenced table, Sales.

F.F. Sales tablosunda başvurulan sütun: [SalesAmount] .The referenced column, [SalesAmount], in the Sales table. Bu bağımsız değişken ile SUM işlevi, bir SUM oluşturmak için hangi sütunların toplanacağını belirtir.With this argument, the SUM function knows on which column to aggregate a SUM.

Bir DAX formülünü anlamaya çalışırken, her bir öğeyi, günlük hayatınızda düşünmek ve konuşmak için kullandığınız dile çevirmek genellikle yararlı olur.When trying to understand a DAX formula, it's often helpful to break down each of the elements into a language you think and speak every day. Örneğin, bu formülü şöyle okuyabilirsiniz:For example, you can read this formula as:

Total Sales adlı ölçüyle ilgili olarak, Sales tablosundaki [SalesAmount ] sütununda bulunan değerler için SUM (Toplama) işlevi ile elde edilen sonucu hesapla (=).For the measure named Total Sales, calculate (=) the SUM of values in the [SalesAmount ] column in the Sales table.

Bu ölçü, bir rapora eklendiğinde, dahil ettiğimiz diğer alanların her biri (ör. ABD'deki Cep Telefonları) için satış miktarlarını toplayarak değerleri hesaplayıp döndürür.When added to a report, this measure calculates and returns values by summing up sales amounts for each of the other fields we include, for example, Cell Phones in the USA.

Kendinize "Bu ölçü, raporuma yalnızca SalesAmount alanını ekleyerek gerçekleştirdiğim işlemle aynı sonucu vermiyor mu?" sorusunu soruyor olabilirsiniz.You might be thinking, "Isn’t this measure doing the same thing as if I were to just add the SalesAmount field to my report?" Bu doğru olabilir.Well, yes. Ancak, SalesAmount alanındaki değerleri toplayan kendi ölçünüzü oluşturmak için geçerli bir nedeniniz var: Bunu diğer formüllerde bağımsız değişken olarak kullanabiliriz.But, there’s a good reason to create our own measure that sums up values from the SalesAmount field: We can use it as an argument in other formulas. Bunlar şu anda biraz kafa karıştırıcı görünebilir ancak DAX formül becerileriniz arttıkça bu ölçü, formüllerinizin ve modelinizin daha verimli olmasını sağlayacaktır.This may seem a little confusing now, but as your DAX formula skills grow, knowing this measure will make your formulas and your model more efficient. Aslında, daha sonra Total Sales ölçüsünün başka formüllerde bir bağımsız değişken olarak karşımıza çıkacağını göreceksiniz.In fact, you’ll see the Total Sales measure showing up as an argument in other formulas later on.

Bu formüle ilişkin birkaç noktanın daha üzerinde duralım.Let’s go over a few more things about this formula. Özellikle belirtmek gerekirse, SUM işlevini tanıttık.In particular, we introduced a function, SUM. İşlevler; sayılar, tarihler, saatler, metinler ve daha fazlasıyla karmaşık hesaplamalar ve işlemeler gerçekleştirmeyi kolaylaştıran, önceden yazılmış formüllerdir.Functions are pre-written formulas that make it easier to do complex calculations and manipulations with numbers, dates, time, text, and more. İlerleyen bölümlerde işlevler hakkında daha fazla bilgi edineceksiniz.You'll learn more about functions later.

Ayrıca sütun adı olan [SalesAmount] ifadesinin, sütunun ait olduğu Sales tablosundan sonra geldiğine de dikkat edin.You also see that the column name [SalesAmount] was preceded by the Sales table in which the column belongs. Sütun adının tablo adını izlediği bu ad, tam sütun adı olarak bilinir.This name is known as a fully qualified column name in that it includes the column name preceded by the table name. Aynı tabloda başvurulan sütunlar, tablo adının formülde yer almasını gerektirmez. Tablo adının formüle eklenmesi, daha kısa ve okunması daha kolay olan birçok sütuna başvuran uzun formüller oluşturabilir.Columns referenced in the same table don't require the table name be included in the formula, which can make long formulas that reference many columns shorter and easier to read. Ancak, aynı tabloda olsalar bile ölçü formüllerinize tablo adını eklemek iyi bir uygulamadır.However, it's a good practice to include the table name in your measure formulas, even when in the same table.

Not

Tablo adında boşluklar, ayrılmış anahtar sözcükler veya izin verilmeyen karakterler varsa tablo adını tek tırnak işaretleri arasında yazmanız gerekir.If a table name contains spaces, reserved keywords, or disallowed characters, you must enclose the table name in single quotation marks. Ayrıca, yerel dilinizin karakter kümesini destekleyip desteklemediğine bakılmaksızın, adın ANSI alfasayısal karakter aralığı dışında herhangi bir karakter içermesi durumunda da tablo adını tırnak işareti içinde yazmanız gerekir.You’ll also need to enclose table names in quotation marks if the name contains any characters outside the ANSI alphanumeric character range, regardless of whether your locale supports the character set or not.

Formüllerinizde kullanılan söz diziminin doğru olması önemlidir.It’s important your formulas have the correct syntax. Çoğu durumda, söz dizimi doğru değilse bir söz dizimi hatası döndürülür.In most cases, if the syntax isn't correct, a syntax error is returned. Bazı durumlarda ise söz dizimi doğru olmasına rağmen beklediğiniz sonuçlar döndürülmeyebilir.In other cases, the syntax may be correct, but the values returned might not be what you're expecting. Power BI Desktop'taki DAX düzenleyicisi, doğru öğeleri seçmenize yardım ederek söz dizimsel olarak doğru formüller oluşturmanızı sağlamak için kullanılan öneriler özelliğini içerir.The DAX editor in Power BI Desktop includes a suggestions feature, used to create syntactically correct formulas by helping you select the correct elements.

Basit bir formül oluşturalım.Let’s create a simple formula. Bu görev, formül söz dizimini ve formül çubuğundaki öneriler özelliğinin size nasıl yardımcı olabileceğini daha iyi anlamanıza yardımcı olacak.This task will help you further understand formula syntax and how the suggestions feature in the formula bar can help you.

Görev: Ölçü formülü oluşturmaTask: Create a measure formula

  1. Contoso Satış Örneği Power BI Desktop dosyasını indirin ve açın.Download and open the Contoso Sales Sample Power BI Desktop file.

  2. Rapor görünümündeki alan listesinde, Sales tablosuna sağ tıklayın ve ardından Yeni Ölçü'yü seçin.In Report view, in the field list, right-click the Sales table, and then select New Measure.

  3. Formül çubuğundaki Ölçü'yü, yeni bir ölçü adı (Previous Quarter Sales) girerek değiştirin.In the formula bar, replace Measure by entering a new measure name, Previous Quarter Sales.

  4. Eşittir işaretinden sonra, ilk birkaç harf olan CAL’yi yazın ve kullanmak istediğiniz işleve çift tıklayın.After the equals sign, type the first few letters CAL, and then double-click the function you want to use. Bu formülde, CALCULATE işlevini kullanmak istiyorsunuz.In this formula, you want to use the CALCULATE function.

    CALCULATE işlevine geçirdiğimiz bir bağımsız değişkenle toplamak istediğimiz tutarları filtrelemek için CALCULATE işlevini kullanırsınız.You’ll use the CALCULATE function to filter the amounts we want to sum by an argument we pass to the CALCULATE function. Bunlar, iç içe geçen işlevler olarak adlandırılır.This is referred to as nesting functions. CALCULATE işlevinin en az iki bağımsız değişkeni vardır.The CALCULATE function has at least two arguments. Bunlardan ilki değerlendirilecek ifade, ikincisi ise bir filtredir.The first is the expression to be evaluated, and the second is a filter.

  5. CALCULATE işlevi için, açma parantezinden ( sonra SUM yazın ve daha sonra başka bir açma parantezi ( daha yazın.After the opening parenthesis ( for the CALCULATE function, type SUM followed by another opening parenthesis (.

    Şimdi SUM işlevine bir bağımsız değişken ileteceğiz.Next, we'll pass an argument to the SUM function.

  6. Sal yazmaya başlayın ve ardından Sales[SalesAmount] 'ı seçin, daha sonra bir kapatma parantezi ) yazın.Begin typing Sal, and then select Sales[SalesAmount], followed by a closing parenthesis ).

    Bu, CALCULATE işlevimizin ilk ifade bağımsız değişkenidir.This is the first expression argument for our CALCULATE function.

  7. Birinci filtreyi belirtmek için virgül ( , ) yazın, daha sonra bir boşluk bırakın ve ardından PREVIOUSQUARTER yazın.Type a comma (,) followed by a space to specify the first filter, and then type PREVIOUSQUARTER.

    SUM sonuçlarını önceki üç aylık döneme göre filtrelemek için PREVIOUSQUARTER akıllı zaman gösterimi işlevini kullanırsınız.You’ll use the PREVIOUSQUARTER time intelligence function to filter SUM results by the previous quarter.

  8. PREVIOUSQUARTER işlevinin açma parantezinden ( sonra Calendar[DateKey] yazın.After the opening parenthesis ( for the PREVIOUSQUARTER function, type Calendar[DateKey].

    PREVIOUSQUARTER işlevi, bitişik tarih aralığı içeren bir sütun olan tek bir bağımsız değişkene sahiptir.The PREVIOUSQUARTER function has one argument, a column containing a contiguous range of dates. Bizim durumumuzda bu, Takvim tablosundaki DateKey sütunudur.In our case, that's the DateKey column in the Calendar table.

  9. PREVIOUSQUARTER işlevine ve CALCULATE işlevine geçirilen her iki bağımsız değişkeni de iki kapatma ayracı )) ile kapatın.Close both the arguments being passed to the PREVIOUSQUARTER function and the CALCULATE function by typing two closing parenthesis )).

    Formülünüzün aşağıdaki gibi görünmesi gerekir:Your formula should now look like this:

    Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  10. Formül çubuğundaki onay işaretiniSelect the checkmark Onay işareti simgesi seçin veya Enter tuşuna basarak formülü doğrulayıp modele ekleyin.in the formula bar or press Enter to validate the formula and add it to the model.

Başardınız!You did it! DAX kullanarak karmaşık bir ölçü oluşturdunuz ve bu hiç de azımsanacak bir şey değil.You just created a complex measure by using DAX, and not an easy one at that. Bu formül, bir rapora uygulanan filtrelere bağlı olarak önceki üç aylık döneme ait toplam satışı hesaplamak için kullanılabilir.What this formula will do is calculate the total sales for the previous quarter, depending on the filters applied in a report. Örneğin, bir grafiğe SalesAmount ile yeni Previous Quarter Sales ölçümüzü ekleyip Dilimleyiciler olarak Year ve QuarterOfYear seçeneklerini eklersek aşağıdaki gibi bir görüntü elde ederiz:For example, if we put SalesAmount and our new Previous Quarter Sales measure in a chart, and then add Year and QuarterOfYear as Slicers, we’d get something like this:

Önceki Üç Ayın Sales ve SalesAmount grafiği

DAX formüllerinin birkaç önemli yönüyle tanıştınız:You were just introduced to several important aspects of DAX formulas:

  • Bu formül iki işlev içeriyordu.This formula included two functions. Akıllı zaman gösterimi işlevi olan PREVIOUSQUARTER işlevi, bir filtre işlevi olan CALCULATE işlevine geçirilen bir bağımsız değişken olarak iç içe geçirilmiştir.PREVIOUSQUARTER, a time intelligence function, is nested as an argument passed to CALCULATE, a filter function.

    DAX formülleri, iç içe geçmiş en fazla 64 işlev içerebilir.DAX formulas can contain up to 64 nested functions. Bir formülün bu kadar çok iç içe geçmiş işlev içermesi pek olası değildir.It’s unlikely a formula would ever contain so many nested functions. Aslında böyle bir formülün oluşturulup ayıklanması zor olurdu ve formül büyük olasılıkla pek hızlı da çalışmazdı.In fact, such a formula would be difficult to create and debug, and it probably wouldn’t be very fast either.

  • Bu formülde filtreleri de kullandınız.In this formula, you also used filters. Filtreler, hesaplamanın kapsamını daraltır.Filters narrow down what will be calculated. Bu örnekte bağımsız değişken olarak bir filtre seçtiniz; bu da aslında başka bir işlev ile elde edilir.In this case, you selected one filter as an argument, which is actually the result of another function. İlerleyen bölümlerde filtreler hakkında daha fazla bilgi edineceksiniz.You will learn more about filters later.

  • CALCULATE işlevini kullandınız.You used the CALCULATE function. Bu işlev, DAX'taki en güçlü işlevlerden biridir.This function is one of the most powerful functions in DAX. Büyük olasılıkla, modeller yazıp daha karmaşık formüller oluşturdukça bu işlevi birçok kez kullanacaksınız.As you author models and create more complex formulas, you'll likely use this function many times. CALCULATE işlevinin daha ayrıntılı bir şekilde ele alınması bu makalenin amaçları arasında yer almasa da, DAX ile ilgili bilgi birikiminiz genişledikçe dikkatinizi özel olarak bu işleve vermenizi öneririz.Although further discussion about the CALCULATE function is outside the scope of this article, as your knowledge of DAX grows, pay special attention to it.

Söz dizimine ilişkin Hızlı TestSyntax QuickQuiz

  1. Formül çubuğundaki bu düğme ne işe yarar?What does this button on the formula bar do?

    Düğme seçimi

  2. Bir DAX formülündeki bir sütun adını her zaman ne çevreler?What always surrounds a column name in a DAX formula?

Yanıtlara bu makalenin sonunda ulaşabilirsiniz.Answers are provided at the end of this article.

İşlevlerFunctions

İşlevler, bağımsız değişken olarak adlandırılan belirli değerleri özel bir sırada veya yapıda kullanarak hesaplamalar gerçekleştiren, önceden tanımlanmış formüllerdir.Functions are predefined formulas that perform calculations by using specific values, called arguments, in a particular order or structure. Diğer işlevler, farklı bir formül, ifade, sütun başvurular, sayılar, metinler, TRUE veya FALSE gibi mantıksal değerler ya da sabitler birer bağımsız değişken olabilir.Arguments can be other functions, another formula, expression, column references, numbers, text, logical values such as TRUE or FALSE, or constants.

DAX şu işlev kategorilerini içerir: Tarih ve Saat, Akıllı Zaman Gösterimi,Bilgi, Mantıksal,Matematiksel, İstatistiksel, Metin, Üst/Alt Öğe ve Diğer işlevler.DAX includes the following categories of functions: Date and Time, Time Intelligence, Information, Logical, Mathematical, Statistical, Text, Parent/Child, and Other functions. Excel formüllerindeki işlevlere aşinaysanız DAX'taki işlevlerin çoğu tanıdık gelecektir ancak DAX işlevleri, aşağıdaki yönlerden benzersizdir:If you’re familiar with functions in Excel formulas, many of the functions in DAX will appear similar to you; however, DAX functions are unique in the following ways:

  • Bir DAX işlevi, her zaman sütunun veya tablonun tamamına başvurur.A DAX function always references a complete column or a table. Bir tablo veya sütundaki belirli değerleri kullanmak istiyorsanız formüle filtre ekleyebilirsiniz.If you want to use only particular values from a table or column, you can add filters to the formula.

  • Hesaplamaları satır bazında özelleştirmeniz gerekiyorsa DAX, bağlama göre değişiklik gösteren hesaplamalar gerçekleştirmek için geçerli satır değerini veya ilgili bir değeri bağımsız değişken türü olarak kullanmanıza olanak sağlayan işlevler sunar.If you need to customize calculations on a row-by-row basis, DAX provides functions that let you use the current row value or a related value as a kind of argument, to perform calculations that vary by context. İlerleyen bölümlerde bağlam hakkında daha fazla bilgi edineceksiniz.You'll learn more about context later.

  • DAX, bir değerden çok bir tablo döndüren pek çok işlev içerir.DAX includes many functions that return a table rather than a value. Tablo görüntülenmez ancak diğer işlevlere giriş sağlamak için kullanılır.The table isn't displayed, but is used to provide input to other functions. Örneğin, bir tabloyu alıp ardından bu tablodaki benzersiz değerleri sayabilir veya filtrelenmiş tablolarda veya sütunlarda dinamik toplamlar hesaplayabilirsiniz.For example, you can retrieve a table and then count the distinct values in it, or calculate dynamic sums across filtered tables or columns.

  • DAX, pek çok akıllı zaman gösterimi işlevi içerir.DAX includes a variety of time intelligence functions. Bu işlevler, tarih aralıklarını tanımlamanıza veya seçmenize ve bunlara bağlı olarak dinamik hesaplamalar gerçekleştirmenize olanak sağlar.These functions let you define or select date ranges, and perform dynamic calculations based on them. Örneğin, paralel dönemler için toplamları karşılaştırabilirsiniz.For example, you can compare sums across parallel periods.

  • Excel, popüler bir işlev olan DÜŞEYARA işlevini içerir.Excel has a popular function, VLOOKUP. DAX işlevleri, Excel'deki DÜŞEYARA işlevinde olduğu gibi başvuru olarak bir hücreyi veya hücre aralığını almaz.DAX functions don’t take a cell or cell range as a reference like VLOOKUP does in Excel. DAX işlevleri, başvuru olarak bir sütunu veya tabloyu alır.DAX functions take a column or a table as a reference. Power BI Desktop'ta ilişkisel bir veri modeli ile çalıştığınızı unutmayın.Keep in mind, in Power BI Desktop you’re working with a relational data model. Başka bir tablodaki değerlere bakmak kolaydır ve çoğu durumda formül oluşturmanız bile gerekmez.Looking up values in another table is easy, and in most cases you don’t need to create any formulas at all.

    Gördüğünüz gibi DAX'taki işlevler, etkili formüller oluşturmanıza yardımcı olabilir.As you can see, functions in DAX can help you create powerful formulas. Aslında yalnızca işlevler ile ilgili temel bilgilere değindik.We really only touched on the basics of functions. DAX becerileriniz geliştikçe çok çeşitli işlevleri kullanarak formüller oluşturabileceksiniz.As your DAX skills grow, you'll create formulas by using many different functions. DAX işlevlerinin her biri hakkında daha fazla bilgi edinmek için kullanabileceğiniz en iyi yerlerden biri de DAX İşlev Başvurusu'dur.One of the best places to learn details about each of the DAX functions is in the DAX Function Reference.

İşlevlere ilişkin Hızlı TestFunctions QuickQuiz

  1. Bir işlev her zaman neye başvurur?What does a function always reference?
  2. Bir formül birden fazla işlev içerebilir mi?Can a formula contain more than one function?
  3. İki metin dizesini bir dizede birleştirmek için hangi işlev kategorilerini kullanırsınız?What category of functions would you use to concatenate two text strings into one string?

Yanıtlara bu makalenin sonunda ulaşabilirsiniz.Answers are provided at the end of this article.

BağlamContext

Bağlam, öğrenilmesi gereken en önemli DAX kavramlarından biridir.Context is one of the most important DAX concepts to understand. DAX'ta satır bağlamı ve filtre bağlamı olmak üzere iki bağlam türü vardır.There are two types of context in DAX: row context and filter context. Öncelikle satır bağlamını inceleyeceğiz.We’ll first look at row context.

Satır bağlamıRow context

Satır bağlamı, en basit ifadeyle geçerli satır olarak düşünülebilir.Row context is most easily thought of as the current row. Formüllerin bir tablodaki tek bir satırı tanımlamak için filtreler uygulayan bir işleve sahip olduğu her durumda uygulanabilir.It applies whenever a formula has a function that applies filters to identify a single row in a table. İşlev, filtreleme yaptığı tablonun her bir satırı için yapısal olarak bir satır bağlamı uygular.The function will inherently apply a row context for each row of the table over which it is filtering. Bu türden bir satır bağlamı, daha çok ölçülere uygulanır.This type of row context most often applies to measures.

Filtre bağlamıFilter context

Filtre bağlamını anlamak, satır bağlamını anlamaktan biraz daha zordur.Filter context is a little more difficult to understand than row context. En basit ifadesiyle filtre kavramını şöyle düşünebilirsiniz: Bir sonucu veya değeri belirleyen hesaplamalarda uygulanan bir veya birden çok filtre.You can most easily think of filter context as: One or more filters applied in a calculation that determines a result or value.

Filtre bağlamı, satır bağlamının yerine değil, satır bağlamına ek olarak uygulanır.Filter context doesn’t exist in place of row context; rather, it applies in addition to row context. Örneğin, bir hesaplamaya dahil edilecek değerlerin kapsamını daha fazla daraltmak için, yalnızca satır bağlamını değil, bu satır bağlamındaki belirli bir değeri (filtre) de belirten bir filtre bağlamı uygulayabilirsiniz.For example, to further narrow down the values to include in a calculation, you can apply a filter context, which not only specifies the row context, but also specifies a particular value (filter) in that row context.

Filtre bağlamını raporlarınızda kolayca görebilirsiniz.Filter context is easily seen in your reports. Örneğin, bir görselleştirmeye TotalCost'u ve ardından Year ile Region'ı eklediğinizde, belirli bir yıla ve bölgeye göre verilerin bir alt kümesini seçen bir filtre bağlamı tanımlamış olursunuz.For example, when you add TotalCost to a visualization, and then add Year and Region, you are defining a filter context that selects a subset of data based on a given year and region.

Filtre bağlamı DAX'ta neden bu kadar önemlidir?Why is filter context so important to DAX? Çünkü filtre bağlamı en kolay bir görselleştirmeye alanlar ekleyerek uygulanırken, filtre bağlamı da bir DAX formülüne, ilişkilere ve diğer ölçü ve sütunlara göre TÜMÜ, İLGİLİ, FİLTRELE, HESAPLA gibi işlevler kullanılarak bir filtre tanımlayarak uygulanabilir.Because while filter context can most easily be applied by adding fields to a visualization, filter context can also be applied in a DAX formula by defining a filter using functions such as ALL, RELATED, FILTER, CALCULATE, by relationships, and by other measures and columns. Örneğin, Store Sales adlı bir ölçüde bulunan aşağıdaki formüle göz atalım:For example, let’s look at the following formula in a measure named Store Sales:

Store Sales ölçüsü

Bu formülü daha iyi anlamak için tıpkı diğerlerinde olduğu gibi bu formülü de parçalara ayırarak inceleyebiliriz.To better understand this formula, we can break it down, much like with other formulas.

Bu formül, aşağıdaki söz dizimi öğelerini içerir:This formula includes the following syntax elements:

A.A. Ölçü adı: Store Sales.The measure name, Store Sales.

B.B. Formülün başlangıcını gösteren eşittir işareti işleci ( = ).The equals sign operator (=), which indicates the beginning of the formula.

C.C. Belirtilen filtrelere göre değiştirilen bir bağlamda bir ifadeyi bağımsız değişken olarak değerlendiren CALCULATE işlevi.The CALCULATE function, which evaluates an expression, as an argument, in a context that is modified by the specified filters.

D.D. Bir veya daha fazla bağımsız değişken içeren bir ifadeyi çevreleyen ayraçlar () .Parenthesis (), which surround an expression containing one or more arguments.

E.E. Aynı tabloda bir ifade olarak bulunan [Total Sales] .A measure [Total Sales] in the same table as an expression. Total Sales ölçüsün şu formüle sahiptir: =SUM(Sales[SalesAmount]).The Total Sales measure has the formula: =SUM(Sales[SalesAmount]).

F.F. İlk ifade bağımsız değişkenini filtre bağımsız değişkeninden ayıran virgül ( , ).A comma (,), which separates the first expression argument from the filter argument.

G.G. Başvurulan sütunun tam adı: Channel[ChannelName] .The fully qualified referenced column, Channel[ChannelName]. Bu, bizim satır bağlamımızdır.This is our row context. Bu sütundaki her bir satır Store veya Online gibi bir kanalı belirtir.Each row in this column specifies a channel, such as Store or Online.

H.H. Filtre olarak kullanılan belirli değer: Store.The particular value, Store, as a filter. Bu, bizim filtre bağlamımızdır.This is our filter context.

Bu formül, filtre olarak Channel[ChannelName] sütunundaki yalnızca Store değerini içeren satırlar için yalnızca Total Sales ölçüsüyle tanımlanan satışların hesaplanmasını sağlar.This formula ensures only sales values defined by the Total Sales measure are calculated only for rows in the Channel[ChannelName] column, with the value Store used as a filter.

Hayal edebileceğiniz gibi, bir formülde filtre bağlamını tanımlayarak çok geniş kapsamlı ve etkili özelliklerden yararlanabilirsiniz.As you can imagine, being able to define filter context within a formula has immense and powerful capabilities. İlgili bir tabloda yalnızca belirli bir değere başvurabilmek, bu tür örneklerden yalnızca bir tanesidir.The ability to reference only a particular value in a related table is just one such example. Bağlamı hemen tamamen anlamazsanız endişelenmeyin.Don’t worry if you do not completely understand context right away. Kendi formüllerinizi oluştururken bağlamı ve bağlamın DAX'ta neden bu kadar önemli olduğunu daha iyi anlayacaksınız.As you create your own formulas, you will better understand context and why it’s so important in DAX.

Bağlama ilişkin Hızlı TestContext QuickQuiz

  1. Bağlamın iki farklı türü hangileridir?What are the two types of context?
  2. Filtre bağlamı nedir?What is filter context?
  3. Satır bağlamı nedir?What is row context?

Yanıtlara bu makalenin sonunda ulaşabilirsiniz.Answers are provided at the end of this article.

ÖzetSummary

DAX'taki en önemli kavramları temel düzeyde öğrendiğinize göre kendi kendinize ölçüler için DAX formülleri oluşturmaya başlayabilirsiniz.Now that you have a basic understanding of the most important concepts in DAX, you can begin creating DAX formulas for measures on your own. DAX'ı öğrenmek gerçekten de biraz karmaşık olabilir ancak kullanabileceğiniz pek çok kaynak mevcuttur.DAX can indeed be a little tricky to learn, but there are many resources available to you. Bu makaleyi okuyup kendi formüllerinizin birkaçıyla deneme yaptıktan sonra işinizle ilgili sorunları çözmenize yardımcı olabilecek diğer DAX kavram ve formülleri hakkında daha fazla bilgi edinebilirsiniz.After reading through this article and experimenting with a few of your own formulas, you can learn more about other DAX concepts and formulas that can help you solve your own business problems. Yararlanabileceğiniz birçok DAX kaynağından en önemlisi, Veri Çözümleme İfadeleri (DAX) Başvurusu'dur.There are many DAX resources available to you; most important is the Data Analysis Expressions (DAX) Reference.

DAX, Power Pivot ve Analysis Services Tablolu modelleri gibi diğer Microsoft BI araçlarında yıllardır kullanıldığı için ulaşabileceğiniz pek çok harika bilgi vardır.Because DAX has been around for several years in other Microsoft BI tools such as Power Pivot and Analysis Services Tabular models, there’s a lot of great information out there. Hem Microsoft hem de önde gelen BI uzmanları tarafından sunulan kitaplarda, teknik incelemelerde ve bloglarda daha fazla bilgiye ulaşabilirsiniz.You can find more information in books, whitepapers, and blogs from both Microsoft and leading BI professionals. TechNet'teki DAX Resource Center Wiki de başlangıç için harika bir kaynaktır.The DAX Resource Center Wiki on TechNet is also a great place to start.

Hızlı Test yanıtlarıQuickQuiz answers

Söz dizimi:Syntax:

  1. Ölçüyü doğrulayıp modele girer.Validates and enters the measure into the model.
  2. Köşeli ayraçlar [].Brackets [].

İşlevler:Functions:

  1. Bir tablo ve sütun.A table and a column.
  2. Evet.Yes. Bir formül, en fazla 64 iç içe geçmiş işlev içerebilir.A formula can contain up to 64 nested functions.
  3. Metin işlevleri.Text functions.

Bağlam:Context:

  1. Satır bağlamı ve filtre bağlamı.Row context and filter context.
  2. Bir hesaplamada tek bir değeri belirleyen bir veya daha fazla filtre.One or more filters in a calculation that determines a single value.
  3. Geçerli satır.The current row.