• ベストアンサー

エクセルで同値を一定数以上持つ行の抽出

エクセル初心者の為、質問文が理解できないかもしれませんが、宜しくお願い致します。 Excelで同じ値を一定個数以上持つ行を抽出したいのですが、どのようにすればいいのでしょうか。 例えば、 鈴木 : 1000 本田 : 30 佐藤 : 100 山田 : 400 佐藤 : 50 本田 : 2000 本田 : 200 佐藤 : 1000 鈴木 : 1000 佐藤 : 30 という場合において、同じ項目が3つ以上ある行だけを抽出し、 佐藤と本田の行を抽出するにはどのようにすればいいのでしょうか。 使っているのはMS Excel 2007です。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

>同じ値を一定個数以上持つ行を抽出したいのですが >同じ項目が3つ以上ある行だけを抽出し は意味がわからない。数値で言えば佐藤だって同じ行は無い。 ーーー 氏名の件数頻度を出すとして 関数の長い、難しい式をひねり出すより、 ピボットでやるのが速い。 例 氏名 計数 <--見出しは必須。付け加えた 鈴木  1000 本田  30 佐藤  100 山田  400 佐藤  50 本田  2000 本田  200 佐藤  1000 鈴木  1000 佐藤  30 ーー データーピボットテーブルー・・ウイザード3/3で「レイアウト」 「行」に氏名をD&D、「データ」に「計数」をD&D-ダブルクリックして「データの個数」を指定ーOK-完了 結果 データの個数 / 計数 氏名 合計 佐藤  4 山田  1 本田  3 鈴木  2 総計 10 A5:B8を範囲指定して、B列で降順に並べる。 結果 データの個数 / 計数 氏名 合計 佐藤  4 本田  3 鈴木  2 山田  1 総計 10 これで3件以上など、すぐ判る。コピーして、他セル範囲に貼り付けも可能。

その他の回答 (3)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3

どんなレイアウトなのかによって、方法が変わります。 「鈴木 : 1000」が1つのセルに入力されているのですか? 「鈴木 :」「1000」と分かれているのですか? 「鈴木」「:」「1000」と分かれているのですか? まさか「鈴木」「: 1000」なわけはないですよね。 この表の左上角のアドレスは? 項目行はあるのですか? それとも、最初の行がいきなりデータ?

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

作業列を作って対応するのがよいでしょう。 例えばお示しのデータがシート1のA,B列の2行から下方に入力されているとします。 C2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(A:A,A2)>=3,IF(COUNTIF(A$2:A2,A2)=1,INT(MAX(C$1:C1))+1+COUNTIF(A$2:A2,A2)/1000,INDEX(C$1:C1,MATCH(A2,A:A,0))+(COUNTIF(A$2:A2,A2)-1)/1000),"") そこでお望みの表を別のシートに表示させるとしたら別のシートのA2セルには次の式を入力しB2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)>COUNT(Sheet1!$C:$C),"",INDEX(Sheet1!$A:$B,MATCH(SMALL(Sheet1!$C:$C,ROW(A1)),Sheet1!$C:$C,0),COLUMN(A1))) これで同じ氏名のデータ同士が連続した形で表示されます。オートフィルタなどの操作を必要としません。

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

猿でも出来る簡単な方法: A列 B列 C列 鈴木 1000 本田  30 対象 佐藤  100 対象 山田  400 佐藤  50 対象 本田 2000 対象 本田  200 対象 佐藤 1000 鈴木 1000 佐藤  30 対象 C1に =IF(COUNTIF(A:A,A1)>=3,"対象","") といった式を記入し,オートフィルタを取り付けて「対象」の行だけを絞り込む 必要に応じて,コピーして貼り付けで取り出す お奨めしない方法: D1に =IF(ROW(A1)>SUMPRODUCT((COUNTIF($A$1:$A$10,$A$1:$A$10)>=3)*1),"",INDEX(A:A,SMALL(IF(COUNTIF($A$1:$A$10,$A:$A)>=3,ROW($A$1:$A$10)),ROW(A1)))) という式を記入してコントロールキーとシフトキーを押しながらEnterで入力し,下にコピー,右にコピーする。

関連するQ&A

専門家に質問してみよう