• ベストアンサー

EXELで条件抽出をしたい…

教えて下さい。EXELで作った下のような表(データ)がありその条件に合う人を抽出したいんですが…       A   B   C   D 1 Aさん 1234  2345  3456  4567 2 Bさん 6788  1234  5556  7778 3 Cさん 7788  7778  5443  7789 A~Dのセルにランダムに並んだ数字を入力している(ここでは、番号(1234)と入力している)人を関数を使い一発表示したいんですが。  A列だけに1234という数字を入力している人を抽出し、条件にあえば「○」という表示をできるようにはIF関数を使いできましたが、 AさんのA列、B列、C列全てを検索範囲に入れた、(たとえば「1234」と入力しているなら「○」等で表示(抽出)したいんですが…それができる関数を教えて下さい。列ごとしかできないのか…??? 分かりにくいですか? (^_^; 宜敷お願いします。

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

  • ベストアンサー
  • gp03d
  • ベストアンサー率46% (12/26)
回答No.1

      A   B   C   D 1 Aさん 1234  2345  3456  4567  =if(countif(A1:D1,"1234")>0,"○","") 2 Bさん 6788  1234  5556  7778 3 Cさん 7788  7778  5443  7789 ではだめですか? 意味としては「A1~D1の範囲で文字列"1234"の個数が0以上(=存在する)ならば"○"を表示、0(存在しない)ならば空白」 やりたいことと違っていたらスミマセン。 さらに汎用性を持たせるとしたら文字列"1234"のところをどこか別のセルを参照するようにすれば、参照もとのセルの値だけ変えれば"1234"以外も探せます。

jackkcaj
質問者

お礼

gp03dさん、有り難う御座いました。できました。まだまだ、関数に関しては初心者ですね。これで、仕事が捗ります。またどうぞ宜敷お願いします。有り難う御座いました。

その他の回答 (2)

noname#95859
noname#95859
回答No.3

>一発表示したいんですが ということで、こんなのではどうでしょう。 条件付書式を使います。設定後、一発で、1234が入力されているセルの文字が赤く表示されます。 (1)別のシートのセルA1に1234と入力する (2)A列を選択する (3)「挿入」「名前」「定義」と進んで、 myListと入力する (4)対象のシートに戻り、A列からE列までを選択する (5)「書式」「条件付書式」を選んで、 「数式が」を選択   =NOT(ISERROR(MATCH(A1,myList,0))) と入力 注:A1はそのまま、A1です。 (6)書式のボタンを押して、文字色を「赤」に設定する (7)最後に「OK」を押します。 これで、1234と入力されている2箇所が赤く表示されます。 仮に、6788と入力されている場所も同様に、ということであるなら、 先に定義したmyListに追加します。具体的にはセルA2に6788と入力します。 この方法は、貴兄の要求には、今ひとつ、足りないことは分かっていますが、苦労の割りに、一目で、把握できるありがたさはあります。 使えるものは使う、と言う考えでやってください。 尚、過去ログを参考にしました。 http://oshiete1.goo.ne.jp/qa2687988.html

jackkcaj
質問者

お礼

質問の意味が分かり難かったですかね?有り難う御座いました。今後の参考にさせてもらいます。

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

しっかり質問の例を書いてくださいな。 A-Dとなっているが、列の意味なら名前がA列で、最右列はE列ではないですか。 一般にエクセルは抜き出し問題は不得手です。関数では式が複雑化するか、難しくて初心者の手に負えないものに也勝ち。 VBA向きの課題ですが、これも経験がないとお手上げでしょう。 質問は抽出となっていながら、○表示したいようでもあり、難しい方の抽出で下記は解説。 ーー 例データ Sheet1のA1:E6 A項目 B項目 C項目 D項目 1234 Aさん 1234 2345 3456 4567 Bさん 6788 1234 5556 7778 Cさん 7788 7778 5443 7789 Dさん 3456 1234 6543 1345 Eさん 1123 3356 4678 9875 F1に抜き出す条件数字を入れるとする。 作業列G列のG2に =IF(ISERROR(MATCH($F$1,$B2:$E2,0)),"",MAX(G$1:$G1)+1) $の有無と場所は正確にまねすること。 下方向に式を複写。結果はG2:G6に 1 2 3 Sheet2に行って A2に =OFFSET(Sheet1!$A$2,MATCH(ROW()-1,Sheet1!$G$2:$G$100,0)-1,COLUMN()-1) と入れてSheet1のG列の最大値3行複写する。 そしてA2:A4をF2:F4まで式を複写する。 結果 Sheet2のA2:E4に Aさん 1234 2345 3456 4567 Bさん 6788 1234 5556 7778 Dさん 3456 1234 6543 1345 自称imogasi方式。WEB照会すれば私の類例回答が沢山出ます。

jackkcaj
質問者

お礼

 有り難う御座いました・質問等が分かりにくかったですね。今後の参考にさせてもらいます。

関連するQ&A