0

この質問は、この質問に関連しています。

以下のようなデータがあります。

 Col A
22-Oct-12
22-Oct-12
22-Oct-12
23-Oct-12
23-Oct-12
23-Oct-12
23-Oct-12
23-Oct-12
23-Oct-12
24-Oct-12
24-Oct-12
24-Oct-12

私が欲しいのは、出力が以下のようになるように、列Bで一意の値を見つけることです。

 Col A
22-Oct-12
23-Oct-12
24-Oct-12

試してみまし=IF(COUNTIF(A$1:A1,A1)=1,A1,"")たが、問題は、22-Oct-12の最初の発生の前、の最初の発生の前22-Oct-12に来る23-Oct-12ことです23-Oct-12。出力は以下のようになります。

 Col A       Col B
22-Oct-12   22-Oct-12
22-Oct-12   
22-Oct-12   
23-Oct-12   23-Oct-12
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
24-Oct-12   24-Oct-12
24-Oct-12   
24-Oct-12   

このような出力はしたくない。欲しいのは以下の通りです。

 Col A       Col B
22-Oct-12   22-Oct-12
22-Oct-12   23-Oct-12
22-Oct-12   24-Oct-12
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
24-Oct-12   
24-Oct-12   
24-Oct-12   

また

 Col A      Col B          Col C
22-Oct-12   22-Oct-12   22-Oct-12
22-Oct-12               23-Oct-12
22-Oct-12               24-Oct-12
23-Oct-12   23-Oct-12
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
24-Oct-12   24-Oct-12
24-Oct-12   
24-Oct-12   

注:これはMACROで実行できますが、MACROは使用しません。これをExcel関数を使ってやりたいです。

また、私はこの答えに従って上記を行うことができましたが、手動でやりたくありません。

事前定義されたExcel関数によるすべて。マクロや手作業はありません。

4

2 に答える 2

1

これを試して、使用してくださいCONTROL + SHIFT + ENTER

=IFERROR(INDEX($A$2:$A$20;MATCH(0;COUNTIF($B$1:B1;$A$2:$A$20);0));"")
于 2012-10-29T12:48:19.653 に答える
1

数値データ(数値や日付など)を想定しています。

B1では、この式を使用します

=MIN(A1:A1000)

次にB2で(Excel 2007以降を想定)

=IFERROR(SMALL(IF(A$1:A$1000>B1,A$1:A$1000),1),"")

...または以前のExcelバージョン

=IF(COUNTIF(A$1:A$1000,">"&B1),MIN(IF(A$1:A$1000>B1,A$1:A$1000)),"")

確認しCTRL+SHIFT+ENTERてコピーダウン

1000行を超えるデータがある場合は、それに応じて調整します。

このメソッドは、日付を繰り返しなしで時系列にリストしますが、データ内で順序付けられます

于 2012-10-29T13:12:06.643 に答える