web-dev-qa-db-ja.com

基準に基づいて値をリストする

「DealSetup」というワークシートに、次の簡略化されたバージョンのようなテーブルがあります。

   A           B
1  John Doe    1
2  Jane Doe    1
3  Mark Doe    2
4  Doug Doe    1
5  Mary Doe    2

"List"というワークシートに "DealSetup"ワークシートから名前を取得したいテーブルがあります。ただし、列Bの値に基づいて名前のみを一覧表示します。

たとえば、「リスト」ワークシートで、ある種のINDEXまたはある種の配列関数を使用して「DealSetup」シートを確認し、列Bの値が1であるすべてのユーザーをプルしてリストします。ただし、空白は必要ありません。次のようになります。

 EVERYONE WITH B COLUMN VALUE OF 1:  
   A  
1  John Doe
2  Jane Doe
3  Doug Doe

またはこのように:

 EVERYONE WITH B COLUMN VALUE OF 2:  
   A  
1  Mark Doe
2  Mary Doe

私は運が悪い時にいくつかのことを試みてきました。ここからどこに行くべきかわからないので、どんな入力でもいただければ幸いです!!

4
drumichael611

_DealSetup!A$2:B$6_のデータを想定すると、この式は_List!A2_で使用できます

=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1),ROWS(A$2:A2))),"")

確認する CTRL+SHIFT+ENTER 必要に応じてさらに下にコピーします。名前が不足すると、空白になります。

_C1_の基準(1、2など)を想定

添付 workbook を参照-_C1_を2に変更してみてください

名前が(指定された基準内で)繰り返される場合は、名前が繰り返されます。式を微調整して、各名前を一度だけ表示することができます(このバージョンなど)。

=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,IF(COUNTIF(A$1:A1,DealSetup!A$2:A$6)=0,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1)),1)),"")

4
barry houdini