2

別のセルが一致する場合は、すべての一意の値をマージします。セルを結合する方法は既に知っていますが、一部の情報が二重になっています。だから私が達成したいのは次のことです:

列 A が同じ名前の場合、その名前に対して列 B で指定されたすべての値は、新しい列で 1 回だけ指定する必要があります。

たとえば、私のデータには行namesと行があります(行1はヘッダーです)mode

     A      B    
2  Brenda   a
3  Brenda   a
4  Joey     a
5  Joey     b

だから私は欲しい:

     E      
2    a
3  
4   a,b
5  

私はすでに列3のモードをマージしました:

=IF(A1<>A2;B2;C1&","&B2)

だから私はこの例に入ります:

     C      
2    a
3   a,a
4    a
5   a,b 

次に、最初のレコードのみが列 4 の追加モードを取得するようにしました。

=IF(A1=A2;"";INDEX(Sheet1!$C:$C;COUNTIF(Sheet1!$A:$A;$A2)+MATCH($A2;Sheet1!$A:$A;0) -1))

だから私はこの例に入ります

     D      
2    a,a
3  
4    a,b
5  

ここで、名前ごとに一意の値のみが与えられる列が必要です。したがって、この例では:

     E      
2    a
3  
4    a,b
5  
4

1 に答える 1

3

データがどのように構造化されているかを理解している場合は、これを試してください。

各行の名前とモードを連結する新しい列 (説明を簡単にするために列 G とします) を追加します。したがって、セル G2="Brendaa"、G3="Brendaa"、G4="Joeya"、G5="Joeyb" などです。

マージ ステップでは、この列のセルの現在の値が列の以前の値と一致するかどうかをテストします。一致しない場合は、マージを行います。はいの場合、そうではありません。

マージ式は次のように変更されます。

    =IF(A1<>A2,B2,IF(ISERROR(VLOOKUP(G2,G$1:G1,1,0)),C1&","&B2,""))

次に、前と同じように次のステップを行います。

于 2013-01-18T16:39:17.373 に答える