
我一直在四處尋找,並努力尋找我的公式不起作用的原因。
在發布我的公式之前,我需要解釋一下我想要做什麼,它有點複雜(至少,這是我能想到的唯一方法)。
**背景**
我需要根據我部門的預算建立電子表格(按類別排序),目前當我從財務系統下載收入/支出時,它只會輸出按日期排序的資料行(原始資料)。
目標1- 匯出的原始資料會自動分類,然後表格清楚地顯示每個類別花費了多少實現
目標2- 將匯出的原始資料分類,並根據使用者的選擇僅顯示特定月份卡住
原始資料導出範例:
表:2015 年數據
Date | Description of Expense | Amount | Codes
Jan-15 | Workshop for employee | 100000 | WRKS
Jan-15 | Workshop for employee | 100000 | WRKS
Feb-15 | Sponsors for employee | 200000 | SPON
Feb-15 | Sponsors for employee | 100000 | SPON
Feb-15 | Workshop for employee | 300000 | WRKS
Mar-15 | Sponsors for employee | 100000 | SPON
如果我們使用上表作為我從財務系統匯出時得到的原始資料(名為「Data2015」)的範例(我將其轉換為 Excel 中的表格)。
我為實現目標 1 所做的就是建立一個包含類別描述的新表(名為「類別」)。
表:類別
Categories | Codes
Workshop | WRKS
Sponsors | SPON
然後建立另一個表格(名為“預算”),如下所示:
表:預算
Categories | Codes | Amount
Workshop | WRKS | 500000
Sponsors | SPON | 400000
我用於預算表上金額列的公式是
=SUMIF(Data2015[Codes],[@Codes],Data2015[Amount])
所以這個公式幫助我達成了目標 1。
為了實現目標 2,我嘗試了以下方法。
建立一個表格來捕獲使用者想要查看的月份:
表:條件
Month | X | Background
Jan-15 | x | 1/01/2015
Feb-15 | x | 1/02/2015
Mar-15 | x | 1/03/2015
如果使用者想要查看該特定月份的費用,則可以在 X 欄中輸入「x」。
我在背景列中使用了這個公式:
=IF([@X]="x",TEXT([@Month], "d/mm/yyyy"),"")
然後我想像以前一樣將月份進一步過濾為類別。
與上面的類別表類似,但根據使用者想要查看的內容針對特定月份。
我設法讓它工作,但只適用於 1 行,而不是整個表。
我希望您檢查我的公式,並讓我知道我所做的可能是不正確的,甚至我實現目標 2 的邏輯是不正確的。您的見解將非常有幫助,對於非常混亂的情況,我深表歉意,我想不出更簡單的方法來解釋。
我創建了另一個電子表格,該電子表格將使用以下公式模仿 Data2015 工作表
=IF(ISNUMBER(SEARCH(Month_View!$D$5, $A5)),Data2015[@Account], IF(ISNUMBER(SEARCH(Month_View!$D$6,$A5)),Data2015[@Account],""))
月視圖!在哪表:條件位於,$D$5 為 Jan-15,$D$6 為 Feb-15,依此類推。
如果公式偵測到 A5(日期所在的欄位)與表:2015 年數據的日期列(在同一行,因此是 @)。
到目前為止,一切都很好,只要我在單元格 A5 中有“Jan-15”或“Feb-15”,它就可以工作。為了根據用戶的偏好填充此單元格,我使用了以下公式(它不會產生我想要的結果):
=IF(Condition[Background]=TEXT(Data2015[@Date],"d/mm/yyyy",Data2015[@Date],"")
所以對我來說,公式的目的是執行以下操作:
如果日期在2015年數據表格符合其中的日期/值之一(格式為“d/mm/yyyy”)狀態名為“背景”的列(僅當使用者在他們想要查看的月份中輸入“x”時才會顯示),然後用來自的值填充此單元格2015年數據的日期列。
如果單元格隨後填充“Jan-15”或“1/01/2015”,那麼表格的其餘部分將填充,然後我可以使用它,然後使用我用於實現目標 1 的公式按類別進一步過濾。
但儲存格並未填入“Jan-15”或“1/01/2015”,而是顯示空白或#VALUE!
似乎是參考了狀態有@的表也是我不想要的。
儘管令人困惑......如果您能理解我想要實現的目標,任何見解或討論都會有所幫助。也許我的大腦在這個階段太超負荷了。
答案1
我會使用 Excel 內建的表格功能 - 不需要公式。選擇您的範圍並按 Ctrl-T 開始。
這將打開頂行的過濾器 - 您/您的用戶可以使用它們按年和/或月過濾日期。
對於總計功能,新增總計行(使用表格工具/設計功能區),在該行中您可以選擇每列所需的聚合(總和、計數等)。這將自動調整以遵循您的篩選。
答案2
好吧,我已經解決了!
這是我使用的公式:
=SUM(SUMIF(Data2015BG1[Category],[@Codes],Data2015GB1[Amount]))
*PS:抱歉,如果參考文獻與我的問題中給出的範例不同。
Data2015BG1 工作表的公式可偵測“觸發器”列中是否有“x”,並根據所選月份顯示必要的資料。我使用的公式是:
=IF(ISNUMBER(MATCH(TEXT(Data2015[@Period],"d/mm/yyyy"),Condition2015A[Background],0))=TRUE,Data2015[@Period],"")
希望這是有道理的,我會發布圖片來準確地向您展示我在視覺上實現的目標,因為本質上我所做的是讓任何人都更容易使用,但我還沒有足夠的聲譽來發布圖像!下次吧。
過濾器本來可以工作,但我正在為那些幾乎沒有太多 Excel 經驗的人創建這個,所以即使要求他們進行過濾也有點過分(...我知道,我知道...)