返回列表 上一主題 發帖

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

回復 1# jumky
問題1:
進貨型號A2設定格式化條件
=COUNTIF(出貨型號!$A:$A,$A2)>0
向下複製格式
問題2:
統計A2陣列公式向下複製
{=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)))}
學海無涯_不恥下問

TOP

回復 3# jumky
抱歉!忘記2003版會有此限制
只要把出貨型號!A:A定義名稱

然後在格式化條件引用名義即可

至於陣列公式請看底下連結文章
http://forum.twbts.com/thread-1277-1-1.html
學海無涯_不恥下問

TOP

回復 5# jumky
進貨型號!A2被選取狀態下輸入,如圖

然後再用複製格式刷,向下複製格式
學海無涯_不恥下問

TOP

回復 7# jumky

力馬幫幫忙!
請你看清楚公式
學海無涯_不恥下問

TOP

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

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

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

TOP

回復 17# jumky

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

TOP

        靜思自在 : 【是否發揮了良能?】人間壽命因為短暫,才更顯得珍貴。難得來一趟人間,應問是否為人間發揮了自己的良能,而不要一味求長壽。
返回列表 上一主題