2016-10-30 12 views
-1

次のような方法があるのだろうかと思います。 列Aに数字が含まれています。お互いに同じ値を持つ2つ以上の数値がある場合は、それに応じてBとCの値を移動します。2つのセルが列1に同じ値を持っている場合は、関連するセルを行内に移動してください。

したがって、列Aの数字がお互いに後に来るかどうかが決定されます。絵で

enter image description here

、Cに列Aは、私の元のデータです。 Column J to Lは私が達成したいものです

正しい方向に私を得るためのアイデアやフィードバックは、非常に感謝される!!!

答えて

1

これはVBAで行うことができますが、配列式を使用して行っています。私はVBAにもっときれいな方法があると確信しています。

私はそれがK2で、だった方法は、次のように入力します

=IF(COUNTIF(F$1:F2,F2)=1,INDEX(B:B,SUM(1/COUNTIF(F$1:F2,F$1:F2))),G1) 

とL2で:あなたはCtrlキー+は+ Shiftキーを押す必要がありますので、

=IF(COUNTIF(F$1:F2,F2)=1,INDEX(C:C,SUM(1/COUNTIF(F$1:F2,F$1:F2))),H1) 

これらは、両方の配列数式です入力後に入力してください。それからそれらはちょうどコピーすることができます。

これが機能する方法は次のとおりです。

IF(COUNTIF(F$1:F2,F2)=1,______,G1) 

は、Fの値はその上に登場した回数をカウントします。これが最初のオカレンス(= 1)である場合は、列Bから値を選択する必要があります。そうでない場合は、上の行(G1)と同じにする必要があります。

INDEX(B:B,SUM(1/COUNTIF(F$1:F2,F$1:F2))) 

再びFの値が発生した回数をカウントすることによって機能します。その上で1を実行し、それらを合計すると、列Fの一意の値の数がその点まで与えられます。次に、索引関数は、その行を参照するB列の値をプルします。

これは意味があり、あなたが探しているものです。

+0

貴重なご支援をいただき、ありがとうございます。セルA2の値150がセルA18に再び現れる場合は、式を変更して再び発生を反映/取り戻すのは難しいでしょうか? とにかく、ありがとうございました。 – Wiz

+0

それはあなたがKとLに何を望むかによって異なります。それは54と1になりますか?あるいは、B11とC11の中には何がありますか? – Richard

+0

B11とC11にあるものは何でも:) – Wiz

関連する問題