
我正在嘗試對預算範本進行逆向工程,以便可以對其進行修改。它有不同支出的部分(家庭、娛樂、交通等)。每個部分都有多種支出(交通有汽車保險、汽油、停車等)。每個部分都是一個命名範圍,每個支出都匯總到該行右端的一個儲存格。但是,模板在一個部分中的每一行都具有相同的功能,我無法弄清楚它是如何工作的。
這是它的圖片,頂部是函數,名稱管理器。正如我所說,突出顯示的函數與“日常生活”的所有行總計中的函數完全相同。 https://i.stack.imgur.com/mbMij.jpg
我有完全相同的名稱組(名稱管理器和所有範圍都是相同的)和相同的佈局,但我無法讓相同的函數產生錯誤並且不被接受。我能做的最好的事情就是放入 SUM(Daily) ,它對該部分中的所有行進行求和,而不是單獨對每一行求和。
有人可以從圖片中解釋這個函數=SUM(Daily[@[January]:[December]])
,特別是“@”符號,以及Excel如何知道JAN(在列標題中)意味著一月,而它不在名稱管理器中?
獎勵:有人可以解釋一下部分總計和總體總計功能是如何運作的嗎? https://i.stack.imgur.com/ydMfz.jpg
答案1
嗯,問了很多問題,我希望我能回答每一個問題。希望。
首先也是最重要的:資料佈局是Table
. Excel 中的ATable
與舊版資料顯示的儲存格範圍不同。它是一個正式的對象,其中遵循簡單的規則,作為交換,Excel,不必考慮世界上任何人在設置時可能做的所有可能的奇怪事情(我已經看到總計單元格出現在數據中,而不是下面,上面,或左邊或右邊,並且在相同的範圍內,出現在不同列的不同行中,它以一種弱智的方式符合該傢伙的方案,但當它看起來時,Excel 是怎麼做的呢?
無論如何,您的表被命名為日常的。順便說一句,由於公式元素的鍵入方式,如果沒有其他原因,您可以看出它是一個表格:看到方括號(“[ ]”)嗎?這些幾乎只在表格和其他奇怪的地方使用(所有這些都可能使用表格技術來工作)。無論如何,在創建簡單SUM()
公式時,當您突出顯示整行時,Excel 會將您突出顯示時看到的單元格地址轉換為基於列標題的表引用:一月到十二月是您在此處突出顯示的範圍的邊緣。因此,您看到的不是 D20:O20 這樣的參考,而是 [January:December]。
公式中還剩下一個元素:@。由於這是一個表,如果您無法告訴 Excel 您的意思是僅這一行,它會認為您正在對所有行求和。在 Excel 中,@
告訴 Excel“僅此行”,並且不僅在表格和其他各種地方使用,而且在使用Spill
公式時也有大量使用。明確地說,它告訴 Excel THIS ROW,因此您僅對乾洗行進行求和,對 1 月到 12 月之間所有列中的數字求和。
在很多方面,SUM()
像這裡一樣使用,並且SUBTOTAL()
(在任何地方使用)都是相同的。但SUBTOTAL()
有一個巨大的區別:Excel 願意忽略在匯總列時使用它的小計。但它不會忽略使用創建的小計,SUM()
因此如果它們與某些原始數字位於同一列中,您將獲得應有總數的兩倍。SUBTOTAL()
它還會回傳一堆不同的東西,例如平均值,它SUM()
本身是不能回來的。
電子表格的編寫者顯然採用了非常標準且合理的方式來設定總計。他使用了水平總計SUM()
,以便他隨後進行的垂直總計不會自動忽略它們,然後用於SUBTOTAL()
進行您在表中看到的垂直總計。
這些東西都不在命名範圍中,因為它們是自動可用的(如此自動,有時很難避免它們...),因為整個東西都是一個表。由於它是一個表格,因此您可以使用列標題作為參考。以前你可以一直這樣做,但大約 17 年前他們把它拿走了,然後以這種形式還給了它......嘆息......
另外,有時令人討厭的是列標題會自動為文本,因此它們不能是公式。因此動態標題對於表格來說是不可能的。
它看起來不像表格的一個原因是你看不到每個標題右側令人討厭的過濾圖標,通常位於標題的頂部......讓它們消失很簡單,作者顯然這樣做了。缺乏這些,大多數人在很長一段時間內都不會想到“表格”,但公式引用的形成是一個致命的洩露。另一件掩蓋事實的事情是,大多數人習慣於桌子上有“綠帶”外觀(任何顏色,但那張紙過去主要是綠色的,而我已經845 歲了,所以...... )。不過,當不合適或被視為可惡時,也可以對其進行格式化(為什麼?為什麼?它使螢幕寬的表格變得更加可讀!),在這種情況下,顯然它不屬於。人們可以在每個資料區域中使用它,但由於它們各自擁有的行數不同,因此年復一年需要付出很大的努力。
所以:
- 這是一個
Table
,所以它有一些好東西可供你使用 - 資料分為兩個部分,左列包含該部分,然後是子部分(在您的情況下為各個行)標題。例如“乾洗”,然後是一月到十二月標題下的“隨著時間的推移填寫”部分。
SUM()
每行都使用函數在其右側對年份進行總計。- 使用函數對每列的月份(以及最右列中的年份)進行總計
SUBTOTAL()
。 - 這些
SUM()
函數一次只處理一行,因為它們將@
第一個項目放在其範圍引用中(“@January”)。 - 各個部分(「收入」、「家庭」等)使用函數對每個月和一年中的位元進行總計,
SUBTOTAL()
因為在整個列進行總計時這些將被忽略。 (與SUM()
每個部分的結果都包含在底部相比,總體而言,總計給出的結果是應有值的兩倍。)
佈局非常合理且有用,並專注於重要細節。有人可能會說,這種東西最好放入一個簡單的表格,甚至是一個表格版本......如果你願意的話,一個簡單的表格,然後是一個數據透視表(是的,有845年的歷史,所以交叉表,甚至交叉表,對我來說聽起來仍然很正常)用於演示。畢竟,資料透視表,或者更準確地說,Power Pivot 表有很多優點(哦…切片器…)和它們自己的總計能力,等等,但那是完全不同的東西學習,這很好地解決了某人的需求。
不確定你需要做什麼,所以我無法提供任何幫助。但如果你只是想以某種方式改進努力,或以某種方式讓它成為你的,你真的做不到,它做得很好。除非你走數據透視表路線。因此,如果僅此而已,請為自己省去一些麻煩:這非常不錯,而且您實際上沒有什麼可改進的地方。如果只是老闆想要做某件事,或其他情況,那麼,我想,我們都經歷過。