Excelの関数を組み合わせて複数の重複データを抽出して表示させてみます。
VLOOKUP関数とCOUNTIF関数を使用します。
この様なデータがあって例えば受注日が2012/6/14のデータを関数を使って抽出して表示させようと思います。
普通にVLOOKUP関数を使って2012/6/14で検索しても検索対象範囲の上から一番最初に見つかったデータしか表示されません。(VLOOKUPの式を下にコピーしても次のデータは検索してくれません)
(-_-;)
んで、どうしたら良いかというと、COUNTIF関数を使って重複するセルに番号を付けてしまいます。
それから、その番号と日付を組み合わせた重複のないデータ(ユニークなデータ)を新たに作ってそのデータを使ってVLOOKUP関数で検索しようというわけです。
受注日の左隣に列「重複番号」を追加してそこにCOUNTIF関数の式を入力します。
統計関数から“COUNTIF”を選択します。
引数を設定します。
ここでは、「範囲」の設定が肝(キモっ!?)になります。
受注日の先頭のセル“C2”(後で下にコピーするので絶対参照の“$”をf4キーで付けておきます)
で、範囲の最後は今式を入力している行のセル“C2”これは絶対参照にはしません。
それによって、この式を下にコピーしていった時範囲の先頭は固定され範囲の最後はコピーするに従って下に広がって行きます。
「検索条件」は検索する受注日を入力するセルを指定します。
ここでは別のシート「検索シート」のセルになります。
ここも、下にコピーしていくので絶対参照にして固定しておきます。
と、こんな感じになります。
“2012/6/14”は“1”から“6”まで番号が振られました。
でその下の“2012/6/12”とかの“2012/6/14”以外のデータのところはカウントされないので範囲の中の“2012/6/14”の数は増えないので“6”のままになっています。
でちなみに、この下の方にも“2012/6/14”のデータがあるのでもっと番号が振られています。
で、「検索シート」にVLOOKUP関数で検索して表示させる表を作ります。
ここでも、肝い部分があります。
こんな様に上の受注日に検索したい受注日を入力すると下の表にその結果が表示されるようにします。
検索結果は複数あるので№を振っているのですが、実はこの№が重複した受注日に付けた番号に相当するようにするわけです。
で、例えば“6”の様に重複番号自体も重複しているのですが、VLOOKUPは最初に登場したデータしか表示されないので重複していても気にする必要はありません。
つまり、VLOOKUP関数の重複データに対する欠点を克服するためにその欠点を利用しているということです。
早速、在籍支社下のセルC5にVLOOKUP関数を入力していきます。
引数を設定します。
検索値:ここで、表の№の値を指定します。
この式は後で右にコピーするので列だけ固定しておきます。
範囲:検索対象の「重複番号」の列が先頭になるように範囲指定して絶対参照にして固定しておきます。
列番号:“3”で「在籍支社」の値を指定します。
検索方法:完全一致の“FALSE”を指定します。
すると、この様に1番目の2012/6/14のデータの「在籍支社」のデータが表示されました。
そうやって、式をコピーし、VLOOKUP関数の引数の「列番号」を一つずつ手入力で増やしてやるとこんな結果になりました。
“2012/6/14”のデータは12個ありました。
「受注日」を“2012/6/12”に変えるとこの様に検索結果が表示されます。
関連ページ
VLOOKUPで列方向の検索をして表示させてみた
COUNTIFで条件に一致するセルの数を数えてみた
VLOOKUPとAND関数で複数の検索条件からデータを抽出して表示させてみた
関数一覧(カテゴリ別)
関数一覧(名前別)
エラー値について(#VALUE!、#DIV/0!、#NAME?、#N/A、#REF!、#NUM!、#NULL!とか)
VLOOKUP関数とCOUNTIF関数を使用します。
この様なデータがあって例えば受注日が2012/6/14のデータを関数を使って抽出して表示させようと思います。
普通にVLOOKUP関数を使って2012/6/14で検索しても検索対象範囲の上から一番最初に見つかったデータしか表示されません。(VLOOKUPの式を下にコピーしても次のデータは検索してくれません)
(-_-;)
んで、どうしたら良いかというと、COUNTIF関数を使って重複するセルに番号を付けてしまいます。
それから、その番号と日付を組み合わせた重複のないデータ(ユニークなデータ)を新たに作ってそのデータを使ってVLOOKUP関数で検索しようというわけです。
受注日の左隣に列「重複番号」を追加してそこにCOUNTIF関数の式を入力します。
統計関数から“COUNTIF”を選択します。
引数を設定します。
ここでは、「範囲」の設定が肝(キモっ!?)になります。
受注日の先頭のセル“C2”(後で下にコピーするので絶対参照の“$”をf4キーで付けておきます)
で、範囲の最後は今式を入力している行のセル“C2”これは絶対参照にはしません。
それによって、この式を下にコピーしていった時範囲の先頭は固定され範囲の最後はコピーするに従って下に広がって行きます。
「検索条件」は検索する受注日を入力するセルを指定します。
ここでは別のシート「検索シート」のセルになります。
ここも、下にコピーしていくので絶対参照にして固定しておきます。
と、こんな感じになります。
“2012/6/14”は“1”から“6”まで番号が振られました。
でその下の“2012/6/12”とかの“2012/6/14”以外のデータのところはカウントされないので範囲の中の“2012/6/14”の数は増えないので“6”のままになっています。
でちなみに、この下の方にも“2012/6/14”のデータがあるのでもっと番号が振られています。
で、「検索シート」にVLOOKUP関数で検索して表示させる表を作ります。
ここでも、肝い部分があります。
こんな様に上の受注日に検索したい受注日を入力すると下の表にその結果が表示されるようにします。
検索結果は複数あるので№を振っているのですが、実はこの№が重複した受注日に付けた番号に相当するようにするわけです。
で、例えば“6”の様に重複番号自体も重複しているのですが、VLOOKUPは最初に登場したデータしか表示されないので重複していても気にする必要はありません。
つまり、VLOOKUP関数の重複データに対する欠点を克服するためにその欠点を利用しているということです。
早速、在籍支社下のセルC5にVLOOKUP関数を入力していきます。
引数を設定します。
検索値:ここで、表の№の値を指定します。
この式は後で右にコピーするので列だけ固定しておきます。
範囲:検索対象の「重複番号」の列が先頭になるように範囲指定して絶対参照にして固定しておきます。
列番号:“3”で「在籍支社」の値を指定します。
検索方法:完全一致の“FALSE”を指定します。
すると、この様に1番目の2012/6/14のデータの「在籍支社」のデータが表示されました。
そうやって、式をコピーし、VLOOKUP関数の引数の「列番号」を一つずつ手入力で増やしてやるとこんな結果になりました。
“2012/6/14”のデータは12個ありました。
「受注日」を“2012/6/12”に変えるとこの様に検索結果が表示されます。
関連ページ
VLOOKUPで列方向の検索をして表示させてみた
COUNTIFで条件に一致するセルの数を数えてみた
VLOOKUPとAND関数で複数の検索条件からデータを抽出して表示させてみた
関数一覧(カテゴリ別)
関数一覧(名前別)
エラー値について(#VALUE!、#DIV/0!、#NAME?、#N/A、#REF!、#NUM!、#NULL!とか)