• 締切済み

Excelで一覧から抽出

画像内の赤線で囲っている部分を手打ちではなく、抽出で出して行きたいです。 A列の1にセブンと打ったらD列の1に A列の2にファミマと打ったらD列の2にファミマ という感じに順番に項目名を自動で出して行ける関数を教えてください。 バージョンはMicrosoft Office Excel2007です。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

D1に =INDEX(A:A,SMALL(IF(FREQUENCY(MATCH($A$1:$A$100&"",$A$1:$A$100&"",0),MATCH($A$1:$A$100&"",$A$1:$A$100&"",0)),ROW($A$1:$A$100),9999),ROW(A1)))&"" と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、下向きにコピー。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 余計なお世話かもしれませんが、↓の画像のように合計額も出すようにしてみました。 作業用の列を1列設けます。 画像ではC2セルに =IF(COUNTIF(A$2:A2,A2)=1,ROW(),"") という数式を入れフィルハンドルでずぃ~~~!っとこれ以上データは増えない!というくらいまでコピーしておきます。 E2セルに =IFERROR(INDEX(A:A,SMALL(C:C,ROW(A1))),"") F2セルに =IF(E2="","",COUNTIF(A:A,E2)) G2セルに =IF(E2="","",SUMIF(A:A,E2,B:B)) という数式を入れ、E2~G2セルを範囲指定 → G2セルのフィルハンドルで下へコピーすると 画像のような感じになります。m(_ _)m

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

数式を読んでも理解できないかも知れませんが次の数式をD1セルに入力して下へ必要数だけコピーしてください。 =IF(ROW(A1)>COUNT(INDEX(1/(MATCH($A$1:$A$100,$A$1:$A$100,)=ROW($A$1:$A$100)),)),"",INDEX(A:A,SMALL(INDEX(SUBSTITUTE((MATCH($A$1:$A$100&"",$A$1:$A$100&"",)=ROW($1:$100))*($A$1:$A$100<>""),0,10^5)*ROW($1:$100),0),ROW(A1)))) 貼付画像はExcel 2013で検証した結果ですが、Excel 2007でも同様な結果になると思います。 但し、元データの最大行番号は100です。

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

>A列の1にセブンと打ったらD列の1に >A列の2にファミマと打ったらD列の2にファミマ >という感じに順番に項目名を自動で出して行ける関数を教えてください。 何をしたいのかが不明ですが、 記載されたことだけであれば、 D1に  =A1 あるいは、=if(a1="","",a1) D2に  =A2 あるいは、=if(a2="","",a2) と入力しておけば可能です

関連するQ&A