返回列表 上一主題 發帖

有關自動變色及剩餘資料問題?

請問Hsieh大大:
公式裡ROW(A1)是指哪裡..?還有每次開這個檔案時...它都會自動重算儲存格要等很久....請問該如何加快它的速度?

TOP

回復 11# jumky
ROW(A1)會傳回1
會重算很久應該是使用陣列公式吧
要看整個工作表公式的使用量才知道什麼問題
學海無涯_不恥下問

TOP

請問Hsieh大大:
ROW(A1)是指進貨型號裡的A1...還是統計標籤裡的A1...?
沒錯是使用陣列公式所以變得緩慢....可它必須使用陣列公式才能重新計算...而每次開此檔...就會跑很久...每做一個動作也會跑很久....連帶其他開啟的EXCEL檔也會變得動作緩慢....請問有什麼方法可以避免此情形發生...??

TOP

回復 13# jumky


    {=INDIRECT("進貨型號!A"&SMALL(IF((COUNTIF(特別型號!A:A,進貨型號!$A$2:$A$7)=0)*(COUNTIF(出貨型號!A:A,進貨型號!$A$2:$A$7)=0),ROW($A$2:$A$7),""),ROW(A1)))}
IF((COUNTIF(特別型號!A:A,進貨型號!$A$2:$A$7)=0)*(COUNTIF(出貨型號!A:A,進貨型號!$A$2:$A$7)=0),ROW($A$2:$A$7),"")
這段是如果進貨型號!$A$2:$A$7沒出現在特別型號!A欄而且進貨型號!$A$2:$A$7也沒在出貨型號!A欄就傳回$A$2:$A$7的列號,否則傳回空白
這會產生一個2~7的數字與空字串的陣列
利用SMALL函數取出由小到大的數字,SMALL會忽略文字
ROW(A1)若向下複製會從A1變為A2,A3,A4......
這就是SMALL的第2個參數
ROW(A1)傳回1就是取2~7的數字與空字串的陣列中的最小值
ROW(A2)傳回2就是取2~7的數字與空字串的陣列中的第二小值
以此類推
最後使用INDIRECT函數指到儲存格
"進貨型號!A"是說要指到進貨型號!A欄
SMALL取得的值就是列號
例如
2~7的數字與空字串的陣列中最小值是3
那麼
SMALL(IF((COUNTIF(特別型號!A:A,進貨型號!$A$2:$A$7)=0)*(COUNTIF(出貨型號!A:A,進貨型號!$A$2:$A$7)=0),ROW($A$2:$A$7),""),ROW(A1))
就傳回3
配合 "進貨型號!A"&
就得到字串"進貨型號!A3"
所以該儲存格就會得到進貨型號!A3的值
學海無涯_不恥下問

TOP

本帖最後由 jumky 於 2011-1-27 23:45 編輯

嗯...了解..謝謝Hsieh大大詳細解說...^^不好意思,再次請問大大,因為我使用陣列公式的資料有將近200筆..是否因使用了過多陣列公式...導致excel重算儲存格時整個文書處理作業緩慢...就連存檔也像當機一樣....??請問是否有解決方法,能使用該公式又不致於讓excel一開啟就產生作業緩慢現象..??

TOP

回復 15# jumky
陣列公式的最大壞處就是會造成運算過於複雜
建議使用輔助欄來做,速度會差很多
不然就只有用VBA只取得值
各有利弊,看你要甚麼方式
學海無涯_不恥下問

TOP

本帖最後由 jumky 於 2011-1-28 13:52 編輯

嗯...謝謝Hsieh大大....^^...那請問如果不用陣列公式用輔助欄...該如何用..??

TOP

回復 17# jumky

如附件
    輔助欄.rar (4.25 KB)
學海無涯_不恥下問

TOP

謝謝Hsieh大大......^^

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題