Board logo

標題: Validation 篩選的問題 [打印本頁]

作者: apolloooo    時間: 2011-8-2 17:16     標題: Validation 篩選的問題

條件式篩選的問題,有人可以幫忙嗎?[attach]7244[/attach]
作者: Hsieh    時間: 2011-8-2 18:50

回復 1# apolloooo
必須使用輔助欄得到不重複的單位清單
然後在取得單位的人名
試試附件
[attach]7246[/attach]
作者: oobird    時間: 2011-8-3 08:00

回復 2# Hsieh


    謝兄的範例我的機子不能成功顯示
小改一下。
[attach]7250[/attach]
作者: apolloooo    時間: 2011-8-3 08:11

本帖最後由 ANGELA 於 2011-8-3 10:41 編輯

感謝,果然和想像的一樣複雜,不過有一個小問題,.........
z=OFFSET(Sheet1!$D$7,,,x,)
x=LOOKUP(1,1/(Sheet1!$D:$D<>""),ROW(Sheet1!$D:$D))-6
y=ROW(OFFSET(Sheet1!$A$1,,,x,))
----------.
{=IF(ROW(A8)>SUM(1/COUNTIF(z,z)),"",OFFSET($D$6,SMALL(IF(COUNTIF(OFFSET($D$7,,,y,),z)=1,y,""),ROW(A8)),))}

ROW(A8)>SUM(1/COUNTIF(z,z)) <-- 想問這句是怎麼回事。
作者: chin15    時間: 2011-8-3 09:41

回復 4# apolloooo


    ROW(A8)>SUM(1/COUNTIF(z,z)) <-- 想問這句是怎麼回事。
z是一個區域範圍
SUM(1/COUNTIF(z,z)) 是這個範圍的不重覆個數
ROW(A8)=8
作者: chin15    時間: 2011-8-3 09:48

這句的用意是當公式所在列大於欲取得的不重複值時,用空白顯示,才不出現錯誤符號。
作者: Hsieh    時間: 2011-8-3 11:29

回復 3# oobird

我原是在2010版編輯
原來x名稱使用
=LOOKUP(1,1/(Sheet1!$D:$D<>""),ROW(Sheet1!$D:$D))-6
是可以成功,經版主提醒,今天以2003開啟確實造成錯誤,公式改成如下
=LOOKUP(1,1/(Sheet1!$D$6:$D$65536<>""),ROW(Sheet1!$6:$65536))-6
這樣能夠通過2003版本
為何會有這樣情形?還請各位提出看法
照理LOOKUP並不會因為整欄而不認為是陣列
莫非2010版因為列數增多,所以檔案記憶其範圍超出2003版所致?
但是,我在2003版重新以整欄定義仍然不能成功
請各位先進賜教
作者: oobird    時間: 2011-8-3 14:41

我在2003中,lookup一向與sumproduct一樣不能指定整欄
作者: apolloooo    時間: 2011-8-3 18:25

最後我認輸了,用VBA解決它,就不用向同事解釋那麼多了[attach]7255[/attach]
作者: apolloooo    時間: 2011-8-3 18:32

倒是說,為什麼不行直接用VBA把儲存格直接Validation 就好了,反而要透過定義名稱才行。
作者: Hsieh    時間: 2011-8-3 18:44

回復 10# apolloooo

資料驗證的清單
來源型態有兩種
1.連續儲存格(單欄或單列)(如下圖)
[attach]7257[/attach]
若要跨表則需使用定義名稱(如下圖)
[attach]7258[/attach]
2.以逗點分隔項目的字串(如下圖)
[attach]7256[/attach]
若以VBA則可以上述的型態寫入,就不須再借助定義名稱了
作者: oobird    時間: 2011-8-4 09:48

要用vba的話,第一個下拉清單通常在open時寫入,第二個下拉清單在改變第一個下拉儲存格時作改變
避開不必要的延遲。不必建立任何名稱的![attach]7265[/attach]
作者: apolloooo    時間: 2011-9-1 12:55

1/COUNTIF(z,z)  , 用 1 除 ,不是變成小數了嗎?




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)