1. 程式人生 > >在Power BI中根據使用者選擇動態生成帶過濾條件的報表URL (Dynamic URL Link)

在Power BI中根據使用者選擇動態生成帶過濾條件的報表URL (Dynamic URL Link)

Power BI Online Service前幾個與的更新中提供了一個新功能:Filter a report using query string parameters in the URL,也就是允許使用者對釋出到Power BI Service的報表URL後新增一些過濾條件,使得Power BI可以根據這些條件去過濾當前Report內容,這樣當用戶通過這個包含Filter的URL來訪問Power BI資料時,就只會看到過濾後的資訊,方便Report的共享和使用。

這個新功能操作也比較簡單,就是在Power BI Online上面找到你要新增過濾條件的Report。在Report URL後面新增?filter=;之後以Table/Field格式填寫要過濾的表單下面的具體列名,然後新增空格,再接過濾操作標籤,例如 eq(等於)ne(不等於),再接空格,最後用單引號包裹過濾條件即可(即Field列下的具體值)。 大概格式如下

https://app.powerbi.com/groups/me/reports/69822dbc-3a60-4567-a532-98811b95bc11/ReportSection2?filter=Gender/Gender eq 'Male'

在這裡插入圖片描述 有幾點需要注意的地方:

  1. 此處需要使用Report URL,使用基於該Report生成的Dashboard URL來設定過濾條件是不奏效的。
  2. Table和Filed名大小寫敏感,必須跟表單名稱一直,否則不奏效。
  3. 操作符前後必須有空格,不能省略。
  4. 過濾條件必須用單引號包裹,否則Power BI無法識別。

URL過濾生效之後在Power BI Online Service Report管理頁面能看到,Filters狀態列下被過濾的Field當中只剩下了過濾後的選項,不符合過濾條件的值被隱藏,並且這種隱藏無論是Basic Filtering還是Advanced Filtering下都生效。這就意味著通過這個過濾URL來檢視報表的使用者,無法通過在報表中修改過濾項來更改報表篩選結果。

以上的功能都需要手動配置,如果想讓Power BI根據使用者選擇,自動生成相應的URL過濾選項,則需要藉助通過幾個DAX表示式來實現。方法如下:

  1. 首先需要保證Power BI Desktop是2018年8月份或者以後Release的版本。想要判斷是否安裝的是8月份release以後的版本也很簡單,可以看一下File控制面板下是否有Export to PDF功能,有的話就符合要求,沒有的話就需要安裝最新版本。 在這裡插入圖片描述
  2. Copy一下Report URL,在結尾處新增?filter這幾個關鍵字,之後輸入資料,新建一個表單,裡面只包含一行資料,即當前這個修改過後的Report URL。 在這裡插入圖片描述
  3. 有了這個URL之後就可以開始在後面新增過濾條件,由於要實現根據使用者選擇動態更改過濾條件,這就只能通過建立度量值來實現該功能。因此,先要做一下準備,將URL從新建的這個表單中提取出來存放到一個度量值當中,此處可以使用SELECTCOLUMNS 來實現。
ReportURL =
SELECTCOLUMNS ( 'URL', "NewURL", 'URL'[URL] )
  1. 接下來就可以做拼接過濾選項部分,先用SELECTEDVALUE函式來獲取使用者對某一個列值的選擇,之後再根據URL新增Filter條件的格式,將獲取到的使用者選項拼接到ReportURL這個結果後面即可。先做只有Gender一個選項的Filter URL。
FilterURL =
[ReportURL] & "Gender/Gender eq "
    & "'"
    & SELECTEDVALUE ( Gender[Gender] )
    & "'"

在這裡插入圖片描述 6. 如果想要再追加一個Region作為過濾條件,可以在按照之前格式用SELECTEDVALUE獲取Region VALUE,之後新增到之前的公式當中。為了防止出現URL非法的情況,可以追加一個IF判斷。

FilterURL =
[ReportURL] & "Gender/Gender eq "
    & "'"
    & SELECTEDVALUE ( Gender[Gender] )
    & "'"
    & IF (
        ISBLANK ( SELECTEDVALUE ( BU[Region] ) ),
        "",
        " and BU/Region eq " & "'"
            & SELECTEDVALUE ( BU[Region] )
            & "'"
    )

在這裡插入圖片描述 7. URL生成之後,選擇FilterURL這個度量值,然後將它的型別轉換成WebURL格式,這樣就表單中的URL就可以變成hyperlink,被直接點選使用了。 在這裡插入圖片描述