2012-03-09 6 views
0

これは手動で行うことができますが、これを行うための公式な方法があると確信しています。ここ
はデータです:excel formula:別の列の値に応じて1つの列でユニークを見つける

Column-A  Column-B  Column-C 
C    Y 
D    
E    Y 
F 
E    Y  

私は何をしたい2つの段階にあります。
)カラム-Bの対応する値が「Y」である列-A、内のすべての値を選択します。
b)上記の列Aから選択したデータから、一意の値のみを選択して列C cに入れます)。したがって、上記のデータの列Cのデータは "C" & "E "

すべてのポインタ?

+1

VBAを使用したくないですか? – assylias

+0

いいえ、単純な式で行うことができる場合はVBAを避けるでしょう – PlanetUnknown

+0

VBAが必要ない場合は、Excelの数式質問にスーパーユーザーが適しています。 – brettdj

答えて

5

は、ここでは、Excel 2007の

はC1

=IFERROR(INDEX(A1:A5,MATCH("Y",B1:B5,0)),"")

をこの式を入れていると仮定すると1つのオプションその後、C2でこの1つは

=IFERROR(INDEX(A$1:A$5,MATCH(1,INDEX((B$1:B$5="y")*(COUNTIF(C$1:C1,A$1:A$5)=0),0),0)),"")

を下にコピーされていますあなたはそれを行うことができます以前のバージョンでは一度だけエラー値を取得しないように、より長い式が必要ですIDの一致が

説明排出される:

式1 A1:A5から関連する値を返しINDEX次いで、B1:B5に最初の「Y」の位置を見つけるために、MATCHを使用します。あなたのカラムが逆の場合、VLOOKUPを使うことができます。INDEX/MATCHは、 "左参照"を行う標準的な方法です。

式2は、2つの条件が満たされている最初の行の位置を見つけるために、MATCHを使用して、B1:B5 =「Y」とA1:A5 <>値が既に発見しました。すでに見つかった値は上記のC列にありますので、COUNTIF関数は上記のセルを調べ、上記の範囲内の列Aの各値を数えます(数式を下にドラッグすると展開されます)。ゼロの数は、値はまだ選択されていません。一度MATCH行番号を確認するINDEXは、列Aのその行から値を取得します。

+0

そのように思えます! 8-)ありがとう!今私はあなたがしたことを8-理解する必要があります。そのインデックス関数は私にとって初めてのものです。 C2でCOUNTIFが使われている理由を説明してもらえますか? – PlanetUnknown

+1

@PlanetUnknown私の答えに説明を追加...... –

関連する問題