![](/img/trans.png)
[英]How to use Excel/VBA to find column_b value with max column_c for each unique column_a element
[英]Excel: Populate drop-down with [unique cells of column_A, where column_B value = SomeValue]
我是Excel的新手,但是有以下情況:
我有Sheet1包含:
column_A
輸入的數值 column_B
選擇的是/否下拉列表,該列表引用隱藏的Sheet3
上的兩個項目列表(YES,NO)。 我有Sheet2
將包含:
Sheet1:column_A
中所有唯一值,其中用戶已選擇在Sheet1:column_B
的YES / NO下拉列表中選擇“是”。 到目前為止,我有一個具有以下公式的命名列表Column_A_Values
:
=OFFSET(`Sheet1`!$A$1,0,0, COUNTA(Sheet1!$A$1:$A$1000)+99)
在隱藏的Sheet3
,我在Sheet3!column_B
具有以下公式,該公式嘗試生成唯一值的列表,用戶已在其中選擇在Sheet1:column_B
的YES / NO下拉列表中選擇“ YES”。 這是行不通的,但我相信它是在正確的軌道上:
=INDEX(Column_A_Values,MATCH(0,COUNTIF($B$1:$B15,Column_A_Values)+("YES"<>Sheet1$B15),0))
最后,在sheet2上有一個下拉列表,引用了包含以下公式的命名列表:
=OFFSET(Sheet3!$B$2, 0, 0, COUNT(IF(Sheet3!$B$2:$B$1000="", "", 1)), 1)
如果有任何不清楚的地方,我深感抱歉,並在必要時予以澄清。 任何人願意提供的協助,我將不勝感激。 我無法讓第二個公式正常工作,因此這是我的優先任務,但是對於您可能會獲得有關Sheet2
的項目符號功能的高級方法的任何建議,我也將不勝感激。 同樣,我對Excel非常陌生,但是我正在學習。
要從Sheet3的B列的Column_A_Values
生成唯一值列表,請在Sheet3!B2
鍵入此數組公式 ,然后在該列中復制/粘貼足夠的行數:
Sheet3!B2:
=IFERROR(INDEX(Column_A_Values, MATCH(1,
(OFFSET(Column_A_Values,0,1)="Yes")*(COUNTIFS(B$1:B1,Column_A_Values)=0),
0)),"")
Ctrl+Shift+Enter
最后,您可以將用於驗證的命名列表設置為以下公式:
=OFFSET(Sheet3!$B$2,0,0, COUNT(Sheet3!$B:$B))
如果您不想使用Ctrl + Shift + Enter 數組公式類型的解決方案,則可以嘗試:
1 指數-SumProduct公式
=IFERROR(INDEX(Column_A_Values,(SUMPRODUCT(SMALL(--(Column_B_Values="YES")*ROW(Column_A_Values),COUNTIF(Column_B_Values,"<>"&"YES")+ROW(A1))))),"")
但是,如果對您來說是否要使用數組公式並不重要,那么這里還有一些其他功能,與親愛的@ ASH建議的功能不同。
2 指標公式 -數組系列
=IFERROR(INDEX(Column_A_Values,(SMALL(IF(Column_B_Values="YES",ROW(Column_A_Values)),ROW(A1)))),"")
Don't Forget to End your function by clicking ctrl+shift+enter, that's really important.
3- 偏移量公式 -數組系列
=IFERROR(OFFSET($A$1,SMALL(IF(Column_B_Values="YES",ROW(Column_B_Values)-MIN(ROW(Column_B_Values))+1),ROWS($1:1))-1,0),"")
Don't Forget to End your function by clicking ctrl+shift+enter, that's really important.
**在這些示例中,您唯一需要做的就是將
Column_B_Values
定義為Sheet1 - Column_B
Yes/No Column
Sheet1 - Column_B
**
然后,就像@ASH再次提到的那樣,可以將用於驗證的命名列表設置為以下公式:
=OFFSET(Sheet3!$B$2,0,0, COUNT(Sheet3!$B:$B))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.