2024-06-17 表構造

表構造

在Power BI中泥张,構造表的方式非常多樣,每一種方式都有其特定的應用場景和步驟嗦枢。

  1. 從外部數(shù)據(jù)源導入數(shù)據(jù)創(chuàng)建表

    • 步驟

      • 打開Power BI Desktop朗伶,點擊左側“獲取數(shù)據(jù)”按鈕。
      • 在彈出的對話框中選擇數(shù)據(jù)源類型(如Excel昨稼、CSV节视、SQL Server等)。
      • 連接到數(shù)據(jù)源后假栓,選擇需要導入的表或數(shù)據(jù)寻行。
      • 點擊“加載”或“編輯查詢”后加載數(shù)據(jù)到Power BI數(shù)據(jù)模型中。
    • 原理
      Power BI Desktop通過連接器與各種數(shù)據(jù)源進行通信匾荆,將外部數(shù)據(jù)加載到數(shù)據(jù)模型中拌蜘,形成可分析的數(shù)據(jù)表。

    • 舉例
      假設有一個Excel文件包含銷售數(shù)據(jù)棋凳,通過“獲取數(shù)據(jù)”選擇Excel數(shù)據(jù)源拦坠,然后選擇該Excel文件中的銷售數(shù)據(jù)表连躏,即可將其導入到Power BI中進行分析剩岳。

  2. 使用DAX查詢創(chuàng)建計算表

    • 步驟

      • 在Power BI Desktop的“字段”窗格中,右鍵點擊“新建表”入热。
      • 在打開的DAX編輯器中輸入計算表的DAX公式拍棕。
      • 點擊“確定”或“完成”創(chuàng)建計算表晓铆。
    • 原理
      DAX(Data Analysis Expressions)是Power BI中用于定義計算列、計算表和度量值的公式語言绰播。通過DAX公式骄噪,用戶可以根據(jù)已加載到數(shù)據(jù)模型中的數(shù)據(jù)創(chuàng)建新的表。

    • 舉例
      假設有一個包含銷售數(shù)據(jù)的表蠢箩,想要創(chuàng)建一個只包含總銷售額超過100萬的客戶的新表链蕊。可以使用DAX中的FILTERSUMMARIZE函數(shù)創(chuàng)建一個新的計算表谬泌,該表只包含滿足條件的客戶滔韵。

  • 在DAX中創(chuàng)建計算表時,有多種函數(shù)和方法可供選擇掌实。以下是使用DAX創(chuàng)建計算表的一些常用函數(shù)和步驟陪蜻,按照清晰的結構進行分點和歸納:
  • 1. 使用EVALUATE函數(shù)

    • 原理:EVALUATE函數(shù)用于創(chuàng)建一個基于DAX表達式的表格,并返回該表格的計算結果贱鼻。
    • 步驟
    1. 確定要計算的表達式宴卖。
    1. 使用EVALUATE函數(shù)包裹該表達式。
    1. 在Power BI的DAX編輯器中輸入并運行該公式邻悬。
  • 2. 使用ROW函數(shù)

    • 原理:ROW函數(shù)用于創(chuàng)建包含指定列值的表格症昏。它可以用于指定行的數(shù)量、排序和篩選條件父丰。
    • 步驟
    1. 確定要包含在表格中的列及其值齿兔。
    1. 使用ROW函數(shù),并指定列名和對應的值础米。
    1. 在DAX編輯器中編寫并運行公式分苇。
  • 3. 使用VALUES函數(shù)

    • 原理:VALUES函數(shù)返回指定列中所有唯一值的表格。
    • 步驟
    1. 選擇要提取唯一值的列屁桑。
    1. 使用VALUES函數(shù)并指定該列医寿。
    1. 在DAX編輯器中編寫并運行公式。
  • 4. 使用CROSSJOIN函數(shù)

    • 原理:CROSSJOIN函數(shù)返回兩個或多個表格之間的笛卡爾積蘑斧,即所有可能的組合靖秩。
    • 步驟
    1. 確定要組合的兩個或多個表格。
    1. 使用CROSSJOIN函數(shù)竖瘾,并指定這些表格沟突。
    1. 編寫并運行DAX公式,獲取組合后的新表格捕传。
  • 5. 使用SUMMARIZE函數(shù)

    • 原理:SUMMARIZE函數(shù)根據(jù)指定的列對表格進行分組惠拭,并生成一個包含聚合計算結果的表格。
    • 步驟
    1. 確定要分組的列和要聚合的列。
    1. 使用SUMMARIZE函數(shù)职辅,并指定分組列和聚合列及其聚合函數(shù)(如SUM棒呛、AVERAGE等)。
    1. 在DAX編輯器中編寫并運行公式域携。
  • 6. 使用UNION函數(shù)

    • 原理:UNION函數(shù)用于將兩個或多個具有相同結構的表格合并成一個表格簇秒。
    • 步驟
    1. 確保要合并的表格具有相同的列結構和數(shù)據(jù)類型。
    1. 使用UNION函數(shù)秀鞭,并指定這些表格趋观。
    1. 編寫并運行DAX公式,獲取合并后的新表格锋边。
  • 7. 使用DATATABLE函數(shù)

    • 原理:DATATABLE函數(shù)用于創(chuàng)建具有指定列和行的新表格拆内。
    • 步驟
    1. 確定新表格的列名、數(shù)據(jù)類型和初始值宠默。
    1. 使用DATATABLE函數(shù)麸恍,并指定這些信息。
    1. 編寫并運行DAX公式搀矫,創(chuàng)建新表格抹沪。
  • 8. 使用其他DAX函數(shù)和表達式

  • 除了上述函數(shù)外,還可以結合其他DAX函數(shù)和表達式來創(chuàng)建更復雜的計算表瓤球。例如融欧,可以使用CALCULATE、FILTER等函數(shù)來添加額外的篩選和計算邏輯卦羡。
  • 當使用DAX來創(chuàng)建計算表時噪馏,CALCULATEFILTER 函數(shù)是非常有用的,因為它們允許你添加復雜的篩選和計算邏輯绿饵。以下是如何使用這些函數(shù)來構造計算表的示例:
  • 使用 CALCULATE 函數(shù)

  • CALCULATE 函數(shù)允許你改變上下文中的篩選條件欠肾,從而改變聚合函數(shù)(如 SUMAVERAGE 等)的行為拟赊。
  • 示例:假設你有一個名為 Sales 的表刺桃,其中包含 RegionProductSalesAmount 列吸祟。你想要計算除北美以外所有區(qū)域的銷售額總和瑟慈。
Non_North_America_Sales =
CALCULATE(
    SUM(Sales[SalesAmount]),
    FILTER(Sales, Sales[Region] <> "North America")
)
  • 但是,請注意屋匕,上面的公式實際上返回的是一個單一的聚合值葛碧,而不是一個表。為了返回一個表过吻,你可以結合使用 SUMMARIZECALCULATE进泼。
  • 示例:按產(chǎn)品計算除北美以外所有區(qū)域的銷售額。
Non_North_America_Sales_By_Product =
SUMMARIZE(
   FILTER(Sales, Sales[Region] <> "North America"),
   Sales[Product],
   "Total Sales", CALCULATE(SUM(Sales[SalesAmount]), Sales[Region] <> "North America")
)
  • 使用 FILTER 函數(shù)

  • FILTER 函數(shù)用于根據(jù)指定的條件篩選表中的行。它返回一個表缘琅,其中包含滿足條件的行粘都。
  • 示例:假設你只想查看銷售額超過1000的產(chǎn)品廓推。
High_Sales_Products =
FILTER(
  Sales,
  Sales[SalesAmount] > 1000
)
  • 但是刷袍,這同樣只返回了一個篩選后的表,而不是一個帶有聚合的表樊展。你可以再次結合 SUMMARIZE 或其他DAX函數(shù)來使用呻纹。
  • 結合使用 CALCULATEFILTER

  • 通常,你會將 CALCULATEFILTER 結合使用专缠,以便在更復雜的上下文中進行聚合和篩選雷酪。
  • 示例:按產(chǎn)品計算每個區(qū)域中銷售額超過1000的產(chǎn)品的總銷售額。
Sales_Over_1000_By_Region_Product =
SUMMARIZE(
    FILTER(Sales, Sales[SalesAmount] > 1000),
    Sales[Region],
    Sales[Product],
    "Total Sales", SUM(Sales[SalesAmount])
)
  • 在這個例子中涝婉,我們首先使用 FILTER 函數(shù)篩選出銷售額超過1000的行哥力,然后使用 SUMMARIZE 函數(shù)按區(qū)域和產(chǎn)品對這些行進行分組,并計算每個組的總銷售額墩弯。
  • 注意:在創(chuàng)建計算表時吩跋,請確保公式正確無誤,并且與你的數(shù)據(jù)源和模型結構相匹配渔工。此外锌钮,考慮到計算表可能會增加模型的復雜性和計算負擔,因此請謹慎使用引矩,并根據(jù)需要進行優(yōu)化梁丘。
  1. 通過新建列、新建表等方式在數(shù)據(jù)模型中創(chuàng)建分析數(shù)據(jù)

    • 步驟

      • 在Power BI Desktop的“字段”窗格中旺韭,選擇現(xiàn)有的數(shù)據(jù)表氛谜。
      • 在數(shù)據(jù)表視圖或數(shù)據(jù)模型視圖中,右鍵點擊選擇“新建列”或“新建表”区端。
      • 在彈出的對話框或DAX編輯器中輸入相應的公式或數(shù)據(jù)混蔼。
    • 原理
      在數(shù)據(jù)模型中直接創(chuàng)建新的列或表,可以基于現(xiàn)有數(shù)據(jù)進行擴展或轉換珊燎,以滿足特定的分析需求惭嚣。

    • 舉例
      假設有一個包含銷售日期的表,但日期是以“YYYYMMDD”格式存儲的悔政⊥硗蹋可以通過在該表上新建一列,并使用DAX中的DATE函數(shù)將字符串轉換為真正的日期類型谋国,以便于后續(xù)的日期分析和可視化槽地。

  2. 利用數(shù)據(jù)建模功能創(chuàng)建關系

    • 步驟

      • 在Power BI Desktop的“模型”視圖中,查看已加載的數(shù)據(jù)表。
      • 拖動一個表中的字段到另一個表中的相關字段上捌蚊,以創(chuàng)建關系集畅。
      • 也可以點擊“管理關系”按鈕,在彈出的對話框中手動創(chuàng)建或編輯關系缅糟。
    • 原理
      在Power BI中挺智,各個表之間需要建立關系以形成完整的數(shù)據(jù)模型。關系定義了表之間的連接方式和數(shù)據(jù)流動方向窗宦,使得在進行分析時可以跨表引用數(shù)據(jù)赦颇。

    • 舉例
      假設有一個銷售表和一個產(chǎn)品表,它們之間通過產(chǎn)品ID字段關聯(lián)赴涵∶角樱可以在“模型”視圖中將銷售表中的“產(chǎn)品ID”字段拖動到產(chǎn)品表中的“產(chǎn)品ID”字段上,以創(chuàng)建它們之間的關系髓窜。這樣扇苞,在分析銷售數(shù)據(jù)時就可以引用產(chǎn)品表中的產(chǎn)品名稱、價格等信息了寄纵。

  3. 使用計算列和計算組

計算列

步驟

  1. 在Power BI Desktop中鳖敷,打開你的數(shù)據(jù)模型,并選擇你想要添加計算列的表擂啥。
  2. 在表的視圖中哄陶,點擊“添加自定義列”按鈕(通常位于表的頂部或底部)。
  3. 在打開的DAX公式欄中哺壶,輸入你的DAX公式來定義新列的值屋吨。
  4. 點擊“Enter”鍵或點擊公式欄旁邊的“√”圖標來確認并創(chuàng)建新的計算列。

原理

計算列是基于DAX(Data Analysis Expressions)公式在現(xiàn)有數(shù)據(jù)表中創(chuàng)建的新列山宾。這些列的值是動態(tài)計算的至扰,并隨著基礎數(shù)據(jù)的變化而更新。計算列提供了一種擴展數(shù)據(jù)模型的方式资锰,使得你可以在現(xiàn)有數(shù)據(jù)的基礎上創(chuàng)建新的維度或度量值敢课。

舉例

假設你有一個包含銷售數(shù)據(jù)的表,其中有一個“銷售額”列和一個“折扣率”列绷杜。你可以創(chuàng)建一個計算列來顯示“實際銷售額”直秆,即“銷售額”減去折扣后的金額。在DAX公式欄中鞭盟,你可以輸入如下公式來定義這個計算列:實際銷售額 = [銷售額] * (1 - [折扣率])圾结。

計算組

說明

雖然Power BI本身并沒有直接命名為“計算組”的功能,但你可能指的是一種概念上的集合齿诉,即將多個相關的計算列和度量值組合在一起筝野,以便在報表或數(shù)據(jù)模型中更容易地引用和管理它們晌姚。在Power BI中,你可以通過創(chuàng)建文件夾或使用分組功能來組織和管理這些計算列和度量值歇竟。

步驟(以創(chuàng)建文件夾為例):

  1. 在Power BI Desktop的“字段”窗格中挥唠,右鍵點擊你想要添加文件夾的位置。
  2. 選擇“新建文件夾”來創(chuàng)建一個新的文件夾焕议。
  3. 將相關的計算列和度量值拖動到該文件夾中宝磨。

原理

通過創(chuàng)建文件夾或使用分組功能,你可以將數(shù)據(jù)模型中的計算列和度量值組織成更有邏輯和層次的結構号坡。這使得在創(chuàng)建報表或進行數(shù)據(jù)分析時更容易找到和引用這些計算列和度量值懊烤。

  1. 使用復合模型和用戶定義的聚合

復合模型

步驟

  1. 在Power BI Desktop中梯醒,通過“獲取數(shù)據(jù)”功能導入你的主要數(shù)據(jù)源宽堆。
  2. 導入其他數(shù)據(jù)源作為相關表或模型的一部分。
  3. 在“關系”視圖中茸习,創(chuàng)建或管理表之間的關系畜隶,確保數(shù)據(jù)能夠正確地跨多個數(shù)據(jù)源流動。

原理

復合模型允許你在Power BI中整合來自不同數(shù)據(jù)源的數(shù)據(jù)号胚。這些數(shù)據(jù)源可以是不同的數(shù)據(jù)庫籽慢、文件或其他類型的數(shù)據(jù)存儲。通過創(chuàng)建關系猫胁,你可以將來自不同數(shù)據(jù)源的數(shù)據(jù)表連接在一起箱亿,形成一個統(tǒng)一的數(shù)據(jù)模型。這使得你可以在單個Power BI報表中分析來自多個數(shù)據(jù)源的數(shù)據(jù)弃秆。

舉例

假設你有兩個數(shù)據(jù)源:一個是銷售數(shù)據(jù)庫届惋,包含銷售數(shù)據(jù);另一個是庫存數(shù)據(jù)庫菠赚,包含庫存信息脑豹。你可以使用復合模型將這兩個數(shù)據(jù)源整合在一起,并通過創(chuàng)建關系來連接銷售表和庫存表衡查。這樣瘩欺,你就可以在同一個報表中分析銷售數(shù)據(jù)和庫存數(shù)據(jù)了。

用戶定義的聚合

說明

在Power BI中拌牲,雖然沒有直接命名為“用戶定義的聚合”的功能俱饿,但你可以通過創(chuàng)建自定義的度量值來實現(xiàn)類似的功能。度量值是基于DAX公式定義的塌忽,可以用于對數(shù)據(jù)進行聚合和計算拍埠。

步驟

  1. 在Power BI Desktop的“字段”窗格中,選擇你想要添加度量值的表或模型砚婆。
  2. 點擊“新建度量值”按鈕(通常位于表的頂部或底部)械拍。
  3. 在打開的DAX公式欄中突勇,輸入你的DAX公式來定義度量值。
  4. 點擊“Enter”鍵或點擊公式欄旁邊的“√”圖標來確認并創(chuàng)建新的度量值坷虑。

原理

通過創(chuàng)建自定義的度量值甲馋,你可以定義自己的聚合函數(shù)和計算邏輯。這些度量值可以基于單個表的數(shù)據(jù)迄损,也可以跨多個表進行計算定躏。它們提供了一種靈活的方式來滿足特定的分析需求,并可以根據(jù)你的業(yè)務邏輯進行定制芹敌。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末痊远,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子氏捞,更是在濱河造成了極大的恐慌碧聪,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件液茎,死亡現(xiàn)場離奇詭異逞姿,居然都是意外死亡,警方通過查閱死者的電腦和手機捆等,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門滞造,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人栋烤,你說我怎么就攤上這事谒养。” “怎么了明郭?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵买窟,是天一觀的道長。 經(jīng)常有香客問我达址,道長蔑祟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任沉唠,我火速辦了婚禮疆虚,結果婚禮上,老公的妹妹穿的比我還像新娘满葛。我一直安慰自己径簿,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布嘀韧。 她就那樣靜靜地躺著篇亭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锄贷。 梳的紋絲不亂的頭發(fā)上译蒂,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天曼月,我揣著相機與錄音,去河邊找鬼柔昼。 笑死哑芹,一個胖子當著我的面吹牛,可吹牛的內容都是我干的捕透。 我是一名探鬼主播聪姿,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼乙嘀!你這毒婦竟也來了末购?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤虎谢,失蹤者是張志新(化名)和其女友劉穎盟榴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嘉冒,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡曹货,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年咆繁,在試婚紗的時候發(fā)現(xiàn)自己被綠了讳推。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡玩般,死狀恐怖银觅,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情坏为,我是刑警寧澤究驴,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站匀伏,受9級特大地震影響洒忧,放射性物質發(fā)生泄漏。R本人自食惡果不足惜够颠,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一熙侍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧履磨,春花似錦蛉抓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至矛辕,卻和暖如春笑跛,著一層夾襖步出監(jiān)牢的瞬間付魔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工飞蹂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抒抬,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓晤柄,卻偏偏與公主長得像擦剑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子芥颈,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容