標題:
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/)