返回列表 上一主題 發帖

[分享] 如何保護儲存格資料技巧1陣列公式(此法也可以用來保護區域欄列不被刪除)

[分享] 如何保護儲存格資料技巧1陣列公式(此法也可以用來保護區域欄列不被刪除)

本帖最後由 HUNGCHILIN 於 2010-6-26 00:04 編輯

儲存格內的資料只有用工作表保護才能保護儲存格資料嗎?
這邊提供一個通用的思維與作法

我們可以利用陣列公式的特性來保護儲存格
其特性:
1.可以局部保護儲存格避免獨立儲蓄格資料被更改
要更改就要整個陣列一起更改不能只改一個儲存格或部份儲存格
2.此法也可以用來保護欄列不被刪除

檔案如附件
Excel課程-陣列-如何保護儲存格資料技巧.rar (3.84 KB)
Hung-Chi Lin/林宏吉
HUNGCHILIN/林宏吉的OFFICE專欄

看不出來如何做到的
ㄚ吉大大可以解說一下ㄇ
謝謝
danny

TOP

真是神奇啊!  真的是另類的保護
原來[陣列]還可以有這樣的功效~又長知識了!

TOP

看不出來如何做到的
ㄚ吉大大可以解說一下ㄇ
謝謝
danny001 發表於 2010-12-14 02:24


就只是一般的陣列公式
請持續深入學習,再似機發問問題
Hung-Chi Lin/林宏吉
HUNGCHILIN/林宏吉的OFFICE專欄

TOP

回復 1# HUNGCHILIN
原如來此,真是特別的保護方式,
只是...要怎麼把陣列取消>"<
沒事就來逛逛

TOP

嗯...發現了...
原來只要點右鍵...清除內容就可以了...
看來要先把基本操作練熟一點了...
沒事就來逛逛

TOP

以下文章文引用的...如果知道本編是哪位大大的大作,還請告知,會補上相關資料。
入門篇

  本主題包含三部分:入門篇、提高篇、應用篇(分中級和高級)

  對於剛接觸Excel陣列公式的人來說,總是會感覺到它的一份神秘。又Excel的Online Help中只有很少關於它的主題,所以這種神秘感就更強了。不要緊,只要跟著我的思路走,你很快就會看清陣列公式的真面目!

  陣列概念
對於陣列概念,大家都會很熟悉,其就是一個具有維度的集合。比如:一維陣列、二維陣列、多維陣列。陣列的表示一般爲“{}”所包括(一維和二維陣列)。Excel中也不例外,如果你想直接表示一個陣列,也必須用“{}”括起來。

陣列與陣列公式
在Excel中,凡是以半形符號“=”開始的單格內容都被Excel認爲是公式,其只能返回一個結果。而陣列公式可以返回一個或者是多個結果,而返回的結果又可以是一維或二維的,換句話說,Excel中的陣列公式返回的是一個一維或二維的陣列集合。
在Excel中需要按下 “Ctrl+Shift+Enter”組合鍵結束陣列公式的輸入。

爲什麽要用陣列公式?
如果你的需要滿足以下條件之一,那麽採用陣列公式技術可能會是你很好的選擇方案。
        你的運算結果會返回一個集合嗎?
        你是否希望用戶不會有意或無意的破壞某一相關公式集合的完整性?
        你的運算中是否存在著一些只有通過複雜的中間運算過程才會等到結果的運算?
看到這些另人費解的問題,你可能會摸不著頭緒。不要緊,看了以下內容你也許就會明白了。

什麽情況下會返回一個集合?
看一個簡單的例子,選中C1:E3,輸入“={"Name", "Sex", "Age"; "John", "Male", 21; "Mary", "Female", 20}”,按“Ctrl+Enter”組合鍵。

圖1-1[attach]4232[/attach]
結果在C1:E3中看到的結果全是“Name”,而實際真正返回的結果應該是一個包含三行三列的二維陣列,如何辦?答案就是用陣列公式。選中C1:E3,輸入“={"Name", "Sex", "Age"; "John", "Male", 21; "Mary", "Female", 20}”,按“Ctrl+Shift+Enter”組合鍵。

圖1-2
2.png
2010-12-28 13:20

可能你又會問,這有何用?爲何不在單格中直接輸入內容,反而要這麽麻煩?
這僅僅是一個例子,說明的是如何通過陣列公式返回一個結果集。給你個問題,如果存在這樣一個工作表:包含欄位{"ID", "Name", "Sex", "Age"},如何將“Sex”爲“Female”的記錄抽取出來 (爲了列印報表,抽取的記錄需要連續存放) ?這個問題將在“應用篇”媔i行解答。

什麽情況下會用到相關公式完整性?
什麽是相關公式完整性?這僅僅是我給出的一個定義,請再回到“圖1-2”,請選擇C1:E3中任意一單格,然後做隨意的修改(哪怕和原先的公式一樣),按“Enter”鍵結束輸入。結果如何?修改未成功!提示“不能更改陣列的某一部分”。

圖1-3
3.png
2010-12-28 13:20

爲什麽會是這樣呢?因爲你正企圖破壞相關公式的完整性。由於C1:E3中公式的資料源均爲“{"Name", "Sex", "Age"; "John", "Male", 21; "Mary", "Female", 20}”,而C1:E3共用的一個公式(這與每個單格都有相同的公式是有區別的,因爲這僅僅是C1:E3擁有9個相同的公式,而不是一個!),因此,當你要單獨更改其中一個單格時,系統會認爲你正在更改部分單格的資料源,如此會導致資料源不一致的現象,從而導致與其他相關單格脫離關係,這樣陣列公式就失去作用,所以系統不又允許你更改陣列公式的部分內容。這樣的好處是可以維護資料的完整性,做到與資料源總是有一致的對應關係。

你的公式複雜嗎?
如果有如下資料,在D6單格中求出對所購物品需要付多少費用。你會如何做?在D6中輸入“=(C2*D2+C3*D3+C4*D4)”?結果正確,如果中間某個單格位址輸入錯誤你的結果會正確嗎?如果記錄不只3條,而是成千上萬條,你是否會感覺到力不從心(如果不考慮單格內字元數的限制)?如果用“圖1-5”中的方法,你的感覺又會如何?(在D6中輸入“=SUM(C2:C4*D2:D4)”,按“Ctrl+Shift+Enter”鍵結束輸入。其中涉及到的技巧會在“提高篇”中討論。)

圖1-4
4.png
2010-12-28 13:20
         
圖1-5
5.png
2010-12-28 13:20


怎麽樣?是否瞭解了陣列公式?是否學會了如何使用陣列公式?是否感覺到了它的一點點威力?

請繼續關注“陣列公式從入門到精通”之“提高篇”,讓我們繼續深入陣列公式!
1.png
1

評分人數

    • Hsieh: 不錯的分享金錢 + 2
50 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題