Excel中一個非常特殊的函數-GETPIVOTDATA

2021-02-19 ExcelEasy讓Excel變簡單

今天介紹Excel中的一個非常特殊的函數,GETPIVOTDATA。

一般在基礎性的培訓課上,我都不會講這個函數,即使有人問起,我也會說不用關心它,對於普通人來說,用處不大,完全可以不學它。

不過,在有些特殊場合,這個公式可以起到很大的作用,比如在DASHBOARD中,或者數據報告裡。

看完本文的介紹,相信你會發現這個函數的用處的😉

本文內容:

認識GETPIVOTDATA

使用GETPIVOTDATA的8個例子和注意事項

為什麼要使用GETPIVOTDATA函數

GETPIVOTDATA的問題

關閉GETPIVOTDATA的自動生成

大部分使用Excel的朋友對這個函數都相當陌生。但是,我相信很多人都見過這個函數,大多數人第一次見到這個函數是如下的場景:

假設我們有這個一個透視表:

我們希望引用一月份的總銷售額然後求產品的平均值,由於1月份的銷售額合計在F5單元格,因此,我們希望的公式是:=F5/5(5個產品)。於是,你像輸入其他公式一樣,在G5單元格中輸入一個:=,然後滑鼠點擊F5單元格,出乎你的意料,你沒有得到:=F5,卻得到了一長串內容:

很多人可能會把這一長串內容「嚇著」,趕緊就按Esc鍵,取消輸入,甚至都沒有來得及看看這一長串內容寫的是什麼😉。

這一長串內容就是在公式引用透視表的單元格時自動生成的GETPIVOTDATA函數。

這個函數其實很簡單的。

先來看名字:

從名字上看,這個公式的作用就是從透視表中獲得數據。

它的使用也比較簡單。我們看下面的例子:

這裡這個公式=GETPIVOTDATA("數量",$A$3,"區域","西區","月",1)使用了6個參數,很簡單就可以看出是什麼意思:

這個公式的意思就是:

取得——A3單元格所在的透視表中,列欄位「區域」中項目為「西區」,行欄位「月份」中項目為「1」 的「數量」

實際上,就是通過這些參數唯一限定了透視表區域的一個單元格。

儘管簡單,這個公式在使用中還是有一些需要注意的地方,下面我們結合例子來詳細介紹一下。

例1 最簡單的GETPIVOTDATA公式

這個公式中不是除了前面兩個參數外,其餘的參數都不是必須的。因此,我們可以寫這個一個公式:

=GETPIVOTDATA("數量",$A$3)

這個公式的意思是獲得A3單元格所在的透視表中的數量。對照這個透視表,你能夠指出到底是哪一個值:

這裡沒有通過行欄位和列欄位指定範圍,那麼在這個透視表上用「數量」唯一能夠確定的就是右下角那個單元格F8,即1082279。

例2 只指定列欄位

理解了上一個例子的,下面這個公式就很容易理解了:

=GETPIVOTDATA("數量",$A$3,"區域","西區")

這個值只要取得透視表中區域為西區的數量值,由於沒有行欄位的限定,因此,只能是西區的合計值,就E8單元格的值。

同樣,可以只指定行欄位,而不要列欄位。

例3 多個行標籤(或列標籤的情況)

如果透視表上行標籤不止一個,那麼要唯一確定透視表的單元格就必須用多個行標籤來限定,參數就會更多。

例如這個公式:

=GETPIVOTDATA("數量",$A$3,"日期",2,"區域","東區","產品","芬達橙味200","月",1)

其中,取得值欄位是「數量」,列標籤是「區域」,項目是「東區」,但是行標籤是通過月份,日期,產品3個標籤來限定的。

從這個例子也可以看出,除了前兩個參數外,其他的參數順序無所謂,只要能唯一限定一個單元格就好了。

例4 這個公式本質上是個查找

如果你換一個角度看這個公式,實際上這個公式就是個多條件3D的查找公式。

3D指三個維度:

 值欄位——第一個參數

行欄位——行欄位名稱和行欄位項目

列欄位-列欄位名稱和列欄位項目

這個公式根據這個3個維度唯一確定一個值。

還是上面的公式,如果我們把透視表變成表格格式,就看得更加清楚了:

實際上,這個公式是在這個表格中查找滿足行列條件的那個單元格的值。

例5 透視表布局會影響結果。

由於上面這個原因,不同的透視表布局會影響同一個公式的結果。例如:

現在這個公式的值是1082279。如果我們將篩選改成1月:

公式沒變,結果卻變了。這個例子再次說明這個公式的機制就是在透視表表格中查找,它並不負責根據源數據計算相應的結果。

例6 如果公式中指定的標籤在透視表上不存在怎麼辦?

假設,原來的公式是:

=GETPIVOTDATA("數量",$A$3,"日期",2,"區域","東區","產品","芬達橙味200","月",1)

現在,我們將透視表中產品從行標籤中去掉:

可以看到,現在公式返回了一個錯誤值,表示引用的區域不存在了!

例8 公式中可以引用單元格

這個很容易理解。例如,公式:

=GETPIVOTDATA("數量",$A$3,"日期",2,"區域","東區","產品","芬達橙味200","月",1)

可以寫成:

=GETPIVOTDATA("數量",$A$3,"日期",2,"區域","東區","產品","芬達橙味200","月",G1)

在G1中輸入不同月份,就可以取出對應月份的數量。

這樣我們就可以很靈活的控制我們需要的內容了。

大部分在了解了這個函數後,下一個必然的問題就是:既然都使用了透視表了,為什麼還需要使用這個函數?

根據我的經驗,有2個原因:

報告布局的要求
在我們做報告或者Dashboard時,對版式布局的要求比較嚴格。而透視表很多時候不方便進行布局,又可能多出了很多我們不需要展示的數據。但是我們又需要通過透視表來分析匯總數據。這時,我們就可以通過這個函數來取出我們想要的數據按照我們的布局要求放在最終的結果表上。這篇文章介紹了一個這麼使用的例子:【Excel模板】年底了,贈送九宮人才盤點模板及模板製作方法。

速度的要求
這些值通過函數可以根據源數據算出來,但是會造成計算速度過慢等問題,此時,就可以使用透視表把數據計算出來,然後通過GETPIVOTDATA獲得想要的數據,從而提高計算速度。

看到這裡,相信有很多朋友會發現這個函數有一個問題:

想使用GETPIVOTDATA取得相應的數值,必須保證有一個透視表存在,並且該透視表的布局必須保證要取得的單元格是存在的。

如果你有多個需求,很可能這些需求不能在一個透視表布局上得到滿足,就需要做多個透視表。這會給後續的維護帶來相當大的複雜性。

這是GETPIVOTDATA這個函數的機製造成的,沒有辦法避免。如果想規避這種情況,又想利用GETPIVVOTDATA這種方法,可以使用CUBE函數,我會在以後的文章中為大家詳細介紹。

很多人不知道在透視表中這個函數可以關閉「自動生成」這個函數的功能。選中透視表任意單元格,在「分析」選項卡中,點擊最左邊的選項,然後去掉「生成GetPivotData」的勾選:

這樣,你再採取本文一開始的方法,在公式中點擊透視表的數值單元格時,就不會生成GETPIVOTDATA函數,而是直接引用單元格了。

需要說明的是,這個操作並沒有「關閉」這個公式的使用,你仍然可以在單元格中直接輸入:=GETPIVOTDATA來使用這個函數。

如果你想系統學習Excel相關知識,可以加入E學會,永久免費學習20門Excel精彩課程。點擊「閱讀原文」了解詳情,也可加客服諮詢更多優惠閱讀往期技術文章:點擊底部菜單:開始學習==>學習指南

分享 / 投稿 / 商務合作    微信號: excel-plus

相關焦點

  • getpivotdata函數是啥?這你都不知道!還敢說自己會透視表?
    數據透視表分析中,點擊選項,勾選生成 getpivotdata。若想要默認勾選 getpivotdata 函數,可以在【文件】-【選項】-【公式】中勾選。前面我們介紹了 getpivotdata 函數的做法。
  • Getpivotdata 使用方式
    對- 你可以一個個複製粘貼- 也可以一個個等於- 也可以Vlookup,Hlookup我今天寫這篇的目的是介紹用getpivotdata 這個函數來填。嗯,我裝逼的在單元格G4 寫下以下函數,然後複製粘貼到其他9個單元格=GETPIVOTDATA(""&$F4&"",$M$3,"Year",$F$3,"學科",G$3) (datafield,pv-table,field1,item1,field2,item2)
  • 數據透視表函數Getpivotdata
    周三 · 分析    關鍵詞: 數據透視表透視表的刷新會變動其結構,如果我們想引用透視表中指定數據
  • 數據透視表中的GETPIVOTDATA函數
    今天來說說一個容易被大家忽視的函數 — GETPIVOTDATA函數。
  • Excel GETPIVOTDATA 函數
    注意:上面GETPIVOTDATA公式中對單元格A2的引用只是數據透視表的位置,它告訴Excel要從哪個數據透視表返回值。理論上,這可以是數據透視表中的任何單元格,但最安全的做法是選擇一個始終存在的單元格,而不考慮數據透視表大小的任何變化。
  • 【MOS考點解讀】一道例題詳解GETPIVOTDATA函數的用法
    資深Office培訓師谷月老師在此藉助一道例題詳細解讀這個函數。例題在「按地區」工作表上的單元格 H3 中,使用 GETPIVOTDATA 函數計算「東北部」地區的「白銀級」等級用戶數量。解答在「地區」工作表中,單擊H3單元格,然後單擊輸入欄左側的「插入函數」按鈕(fx按鈕),Excel彈出「插入函數」對話框,在「搜索函數」框中輸入「GETPIVOTDATA「,單擊「轉到」按鈕,然後單擊「確定」。
  • Excel函數:提取數據透視表數據的方法
    在遇到複雜數據需要做統計分析的時候,我們會經常使用到excel的一個絕密武器,那就是數據透視表。如果在做完數據透視表之後,需要單獨提取數據透視表中的其中的單個數據應該怎麼辦呢?今天,小編就給大家分享這樣一個函數:函數功能:返回存儲在數據透視表中的數據,可以在數據透視表中檢索匯總數據函數參數:=getpivotdata(Data_field,Pivot_table,[field1,item1, field2,item2……)參數詳解:Date_field:必需。
  • excel函數應用解析:透視表專有函數GETPIVOTDATA
    今天是部落窩函數課堂的第8課,我們將一起來認識GETPIVOTDATA函數!不知道小夥伴們還記不記得這個函數。沒錯!它就是我們前段時間發布的《受夠加班煎熬,我整理出10條職場人士最常用的透視表技巧!(下篇)》教程中,所提到的透視表的專有函數。GETPIVOTDATA函數的主要功能是返回透視表中的可見數據。
  • excel函數應用解析:透視表專有函數GETPIVOTDATA
    今天是部落窩函數課堂的第8課,我們將一起來認識GETPIVOTDATA函數!不知道小夥伴們還記不記得這個函數。沒錯!它就是我們前段時間發布的《受夠加班煎熬,我整理出10條職場人士最常用的透視表技巧!(下篇)》教程中,所提到的透視表的專有函數。GETPIVOTDATA函數的主要功能是返回透視表中的可見數據。
  • 函數菜鳥如何越級打怪成就函數高手,完全有捷徑,真正的速成之道絕對乾貨_Excel
  • Excel函數常見特殊符號、字符解讀
    在Excel函數中經常會出現一些特殊符號和字符,初學者乍看之下會覺得雲山霧裡。今天就讓我們一起來學習Excel中常見的特殊符號和字符,揭開其面紗,領略Excel函數的魅力。
  • 在excel中today函數的使用方法
    excel中today函數的使用方法圖2  3.and函數表示檢查是否所有參數均為TRUE,如果所有參數均為TRUE,則返回TRUE。  if函數表示判斷是否滿足某個條件,如果滿足返回一個值,如果不滿足返回另一個值。  語法格式=if(條件,結果1,結果2)  輸入公式=IF(TODAY()-B2<=90,"是","否")。
  • excel中有哪些函數值得學習?推薦掌握這些函數
    excel作為一款數據處理工具,可以高效地進行日常計算分析,而函數在excel中具有舉足輕重的地位。但是excel中有數百個函數,很多大神利用複雜的函數嵌套實現了神乎其技的功能,這麼多函數加上運用如此靈活,自己該從哪兒開始學習呢?
  • 使用GETPIVOTDATA函數獲取數據透視表匯總數據
    Excel提供了GETPIVOTDATA函數,利用這個函數可以獲取數據透視表的匯總數據,也可以用於獲取某個項目的匯總數據。
  • 職場excel如何用函數進行五星打分?大神一個公式就搞定!
    如圖中案例表格,已經得到每個菜品的分值,用五星打分的形式非常的直觀好看。如果你沒有學會這些函數,那麼就無法應對大量數據的表格。現在,我們就來用函數公式實現excel自動化辦公。一、掌握「int函數」的用法因為最常用的五星打分是5分制的,而可能你的原始分值是100分制,或者10分制等等,就需要進行換算。在換算的結果裡,就容易出現小數的情況;由於特殊字符裡沒有半個五角星的符號,所以要對結果取整數。
  • excel函數之等號(=)函數運用
    excel函數之等號(=)函數運用今天要為大家說的excel"=函數"的運用,相信很多人都有一個疑問,等號函數有什麼值得單獨來講的呢?以下示例中,Sheet2 就是用 "=" 將 Sheet1 的欄位順序進行調整。註:用 "=" 取得的數據,其本身的格式與源數據是一樣的。當你發現用"="取得的數據沒法進行相應的處理時,如加總、查找等,應當想到可能是源數據的格式問題造成的。這時你可通過更改源數據格式或用 "=" 結合其他函數更改要引入之數據的格式等方式進行處理。
  • excel中vlookup函數的使用方法
    vlookup函數是excel表格中高級的用法,通過vlookup函數我們可以調用符合條件的數據,在大量調用時可以節省我們查找複製excel數據的時間,今天我就教下大家vlookup函數的使用方法吧。vlookup函數的使用方法如圖我準備了一張員工入職時間表,員工有非常多,如果我要在這裡面一一找出張三李四王五等人的入職時間的話,可以通過查找黏貼的方式,但是這樣的效率就很低了,特別是要找的人多的話,那使用vlookup函數是最簡單的方法。
  • excel中vlookup函數的用法筆記
    本篇將介紹excel中vlookup函數的用法,有興趣的朋友可以了解一下!一、前言excel是我們工作中很常用的表格製作工具,它不僅僅只是用來製作表格,還能對數據進行處理(如:排序、運算等)。excel中還給我們提供了很多實用的函數,今天小編要介紹的就是其中一個,也是比較常用的一個函數,即vlookup函數。vlookup函數的功能其實就是用來找東西的,只要是找excel表格中的某個數據,大家都會想到使用vlookup函數。vlookup函數怎麼用呢?相信是很多人關心的問題,接下來就跟著小編一起來學習excel vlookup函數的用法吧!
  • excel指數函數是什麼?怎麼求一個數的n次方?
    本篇將介紹excel指數函數是什麼?怎麼求一個數的n次方?有興趣的朋友可以了解一下!一、前言excel是我們工作中經常使用的一款表格製作工具,它不僅僅只是用來製作表格,而在表格數據的處理方面也顯得非常突出。excel為我們提供了很多函數,對於一些常用簡單的函數我們應該要了解,這能大大提高我們的工作效率。
  • Excel中的單條件計數函數countif
    COUNTIF函數會統計某個區域內符合您指定的單個條件的單元格數量,記得函數返回值是滿足給定條件的單元格的數量。例如,我們可以計算以某個特定字母開頭的所有單元格的數量,或者可以計算包含大於或小於指定數字的所有單元格的數量。