• 締切済み

条件を抽出し、フラグを立てる関数

下記条件の場合、D列に「○」フラグを立てたいです。 D列に入力する関数を教えてください。 どうぞよろしくお願い致します。 ・ B列が同じ名前の行を抽出。 ・ 抽出した行のC列に「鉛筆」「消しゴム」「ペン」が入力されている場合、   D列に「○」をつけたい。 ・ ただし、B列が同じでも、C列に「鉛筆」「消しゴム」「ペン」以外が入っていた 場合、D列には何も入れない。 ※B列には飛び飛びに同じ名前が入力されている場合もあります。 ※行は1000行ほどあります。 【前】      B列    C列 山田太郎  鉛筆 山田太郎  ペン 伊藤二郎  缶 伊藤二郎  鉛筆 鈴木五郎  ペン 鈴木五郎  消しゴム 木村三郎  消しゴム 木村三郎  鉛筆 山田太郎  消しゴム 鈴木五郎  パソコン 【後】   B列    C列    D列 山田太郎  鉛筆    ○ 山田太郎  ペン    ○ 伊藤二郎  缶 伊藤二郎  鉛筆 鈴木五郎  ペン 鈴木五郎  消しゴム 木村三郎  消しゴム  ○ 木村三郎  鉛筆    ○ 山田太郎  消しゴム  ○ 鈴木五郎  パソコン わかりにくくて申し訳ありませんが、よろしくお願いいたします。

みんなの回答

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

回答No2,3です。 No2で示した式は次のようです。 =IF(B1="","",IF(COUNTIF(E:E,B1&"鉛筆")+COUNTIF(E:E,B1&"消しゴム")+COUNTIF(E:E,B1&"ペン")=COUNTIF(B:B,B1),"○","")) この式の意味はB1セルが空ならば空にしなさい。もしも、E列でB1と鉛筆を結合したデータの数、B1と消しゴムを結合したデータの数、B1とペンを結合したデータの数を足し合わせた数がB列でB1のセルのデータがある数が同じ値であるならば○を表示しなさい、そうでなければ空にしなさいという式です。 仮にB1セルのデータがB列に3つ有って、B列でのデータが鉛筆、消しゴム、ペンの場合は勿論のこと、鉛筆、消しゴム、消しゴムとなっている場合にも○となります。後者の場合にはCOUNTIF(E:E,B1&"鉛筆")は1でCOUNTIF(E:E,B1&"消しゴム")は2、COUNTIF(E:E,B1&"ペン")は0となってその合計は3となります。 COUNTIF(B:B,B1)の値は3となりますので○となります。

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

ん?? 補足の投稿をしていただいていますが,回答1でお話ししている数式はあなたの条件も,また補足された例1,2,3についても,全く問題なく正しい答えを表示します。一体どういう事でしょうか? 実際にお手許でエクセルを動かして,ちゃんとご自分で書かれた事例をご自分でもシートに入れ直し,そして回答の式を実際に手を使って確かめてから改めて質問を投稿してみて下さい。 ちゃんと回答通りにすればちゃんと出来ますので,もう一度やり直して下さい。という事です。 でもこれだけじゃ回答になりませんので,回答1の式にひとつ追加して D1: =IF(B1="","",IF(COUNTIF($B$1:$B$1000,B1)=SUMPRODUCT(($B$1:$B$1000=B1)*($C$1:$C$1000={"鉛筆","消しゴム","ペン"})),"○","")) 以下コピー としてみましょう。 もしそれで上手く行かなかったときは ・一体ホントはどんな内容のデータを入れたのか ・一体ホントはどこ番地のセルにデータや数式を入れたのか ・あなたはそれらの実際のシートの状況に合わせて,実際に具体的な数式はどんな式で書いてどこ番地のセルに入れたのか といった,あなたの目の前で起きている事実を正しく補足してください。

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

回答No2です。 補足でご質問のケースの場合でもNo2で回答した方法は間違っておりません。同じ氏名が1行の場合でも2行の場合でも3行の場合でも何ら問題はないはずです。実際に試験されたのでしょうか? もしも違っていたならどの場合に違っていたかを具体的に示してくれませんか?

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

SUMPRODUCT関数などを使った場合にはデータが多くなると計算が重くなります。 分かり易く簡単な方法は作業列を使うことです。 D列に答えを表示させるのでしたら作業列をE列としてE1セルには次の式を入力して下方にオートフィルドラッグします。 =B1&C1 次にD1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B1="","",IF(COUNTIF(E:E,B1&"鉛筆")+COUNTIF(E:E,B1&"消しゴム")+COUNTIF(E:E,B1&"ペン")=COUNTIF(B:B,B1),"○","")) E列がE列を選択して右クリックし非表示を選択すればよいでしょう。 なお、下方に式をオートフィルドラッグする際にはD1セルおよびE1セルに式を入力してからD1及びE1セルを一括して選択してから下方にオートフィルドラッグすればよいでしょう。

demitaro
質問者

補足

回答ありがとうございました。 説明不足で申し訳ありません。 "鉛筆","消しゴム","ペン"に関しては、この3つ全てが揃っていなくても、 このうち1つor2つでも抽出できるようにしたいので、これを含めた関数を 教えていただけませんでしょうか? 例1:山田太郎がB列に2つあったとして、その2行のC列が"鉛筆","消しゴム"    だった場合、2行のD列に"○"をつける。 例2:山田太郎がB列に1つあったとして、その行のC列が"ペン"だった場合、 D列に"○"をつける。 例3:山田太郎がB列に3つあったが、うち2行のC列が"鉛筆","消しゴム"、 1行のC列が"パソコン"だったため、3行ともD列には何も入れない。 お手数をおかけしますが、よろしくお願い致します。

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

D1: =IF(COUNTIF($B$1:$B$1000,B1)=SUMPRODUCT(($B$1:$B$1000=B1)*($C$1:$C$1000={"鉛筆","消しゴム","ペン"})),"○","") など。

demitaro
質問者

補足

回答ありがとうございました。 説明不足で申し訳ありません。 "鉛筆","消しゴム","ペン"に関しては、この3つ全てが揃っていなくても、 このうち1つor2つでも抽出できるようにしたいので、これを含めた関数を 教えていただけませんでしょうか? 例1:山田太郎がB列に2つあったとして、その2行のC列が"鉛筆","消しゴム"    だった場合、2行のD列に"○"をつける。 例2:山田太郎がB列に1つあったとして、その行のC列が"ペン"だった場合、 D列に"○"をつける。 例3:山田太郎がB列に3つあったが、うち2行のC列が"鉛筆","消しゴム"、 1行のC列が"パソコン"だったため、3行ともD列には何も入れない。 お手数をおかけしますが、よろしくお願い致します。

関連するQ&A

  • エクセルでのデータ抽出方法について

    Excel2010で、IDと氏名を結びつけたリスト表を作成しようと考えています。 例として以下のようなエクセル表があったとします。 ※列A・列B→ID及び氏名   列D・列E→列A・列Bから抽出したい情報        【列A】    【列B】    【列C】    【列D】    【列E】      【行1】   11111   山田 太郎    -      11119    (※「山田 九郎を」入れたい) 【行2】   11112   山田 二郎    -      11112    (※「山田 二郎を」入れたい)     【行3】   11113   山田 三郎    -       11118    (※「山田 八郎を」入れたい)     【行4】   11114   山田 四郎    -       11114    (※「山田 四郎を」入れたい) 【行5】   11115   山田 五郎              【行6】   11116   山田 六郎                【行7】   11117   山田 七郎           【行8】   11118   山田 八郎 【行9】   11119   山田 九郎         : D列は既に入力済み(確定)で、IDが割り振られている人の氏名をE列に挿入したい場合の エクセルの操作方法について教えていただきたく、よろしくお願いします。

  • 複数条件の抽出SQL文がわかりません

    WinXP DB:ACCESS2000 利用しています。 DB勉強中です、よろしくお願いします。 顧客管理の抽出条件のSQL文がわかりません。 T_顧客 ID 住所   氏名   TEL   紹介者1 紹介者2 紹介者3 紹介者4 001 愛知県名古屋市○1-1 山田太郎 000-000-0001  1  2  3 002 岐阜県岐阜市000-00  近藤たろう 000-110-0001  2  003 愛知県愛知郡22-2222 後藤たろう 000-111-0001  3  4 T_紹介者 ID 住所   氏名   TEL 1 名古屋市 山田二郎 111-111-1112 2 岐阜市  安藤三郎 222-222-2222 3 津市   伊藤司郎 333-333-3333 4 静岡市  田中五郎 444-555-4445 と言うDBがありまして、以下のように抽出したいと思っています。 001 愛知県名古屋市○1-1 山田太郎 000-000-0001  山田二郎 安藤三郎 伊藤司郎 002 岐阜県岐阜市000-00  近藤たろう 000-110-0001  安藤三郎  003 愛知県愛知郡22-2222 後藤たろう 000-111-0001  伊藤司郎 田中五郎 と言ったようにしたいです。 よろしくお願いします。

  • 【EXCEL関数】違うシートに抽出結果を出したい

    一覧表から「○」の条件が付いたデータのみを別シートに関数で抽出したいです。 フィルタではなく関数を使用したいのは、抽出したデータから名前の定義を使用して リスト表示をさせたいためです。ご教示のほど、宜しくお願いします。 シート1は一覧表となっており、A列に「○」のついたデータのみをシート2に表示 シート1(一覧表)   A  B 1  ○  山田太郎 2  ×  佐藤次郎 3  ○  高橋三郎 4  ×  鈴木四郎 5  ×  中村五郎 シート2(抽出結果を表示させる)   A  B 1  ○  山田太郎 2  ○  高橋三郎 3  4  5 フィルタオプション、当方の考え得る限りの配列関数等、色々試しましたが、 不勉強のために上手く結果が表示されませんでした。 ご教示のほど、宜しくお願い致します。

  • エクセルのマクロで全シ-ト複数条件検索

    エクセルで全シートから複数項目で検索をかけ、条件に合う項目の行ごと 新しいシートに抽出結果として表示することは可能なのでしょうか。 初心者なりに考え、無様なコードではありますが、 検索条件が1つであれば、条件にあう行をすべて抽出することはできました。 ですが複数、または列ごと条件として指定することができず、難儀しております。 たとえば Sheet1    A    B    C    D 1      田中太郎   男   穏やか  2      鈴木次郎   女   うっかり 3      山田三郎   女   怒りっぽい 4      佐藤四郎   男   せっかち Sheet2    A    B    C    D 1      伊藤五郎   女   用心深い 2      加藤六郎   男   ずぼら 3      斎藤七郎   女   臆病 4      後藤八郎   男   陽気 Sheet3    A    B    C    D 1      【条件】 2      加藤六郎 3      鈴木次郎 4      山田三郎 5      後藤八郎 マクロ実行後↓ 新しいシート    A    B    C    D 1      加藤六郎   男   ずぼら 2      鈴木次郎   女   うっかり 3      山田三郎   女   怒りっぽい 4      後藤八郎   男   陽気 といった具合にしたいと考えております。 この場合ですと、B列全体を条件としたり、 Sheet3の条件が入力されているセルすべてを検索条件として 渡すことはできるのでしょうか。 実際のシートでは、条件が10個~100個ほどあり、 シートごとに数はばらばらになっております。 どうかわかる方、お力をお貸しください。

  • エクセルでデータ抽出→並べ替え

    エクセルで   A列   B列   C列    D列  E列        4月1日 9:00 山田太郎   9:15   佐藤仁  4月1日 10:05 佐藤聡 10:00 鈴木正夫  4月1日 11:15 高橋二郎 11:00 山田勇        4月2日 9:05 渡邊正志 9:15 佐々木正夫        4月2日 10:00 山田太郎  10:15 佐藤仁         4月2日 11:02 佐藤仁   11:00 高橋二郎 という複数の営業マンの訪問予定表があります。この「山田太郎」さんに 月間の訪問予定表を発行したいと思っています。 ※発行対象は全員です。 関数でもマクロでも結構ですが、ご教授いただけると助かります。

  • Excelで重複データを調べる方法はありますか?

    列の重複データを調べ、隣に設けたセルに○を付ける方法か、名前のセルに色を塗る方法はありますか? 調べても分からなく困っております。どうかよろしくお教えください。    A       B 1 田中 一郎 ○ 2 木村 二郎 3 林 三郎 4 田中 一郎 ○ 5 大口 朝子 ○ 6 山田 太郎 7 大口 朝子 ○

  • シートの合計

    よろしくお願いします。 エクセルでシート1~3迄あります。各シ-トのA列は名前、B列に数字が入っています。名前はA列のどの行にあるかわかりません。 同じ名前をシート4のA1に入力したらその名前の合計を出したい。  シート1    シート2   シート3       シート4   A   B    A   B   A    B     A    B 山田 10   木村  5  佐々木 18   木村  55  鈴木 20   田中 21  伊藤  33    ↑ 木村 50   山下 70  加藤  57  (入力する) 田中 15   高橋 90  佐藤  61 高橋 60   山田 10  鈴木  12             ・   ・   ・          

  • 条件付き書式以外で条件を付けたい!

    みなさんいつもありがとうございます。度々お世話になります。 今回はエクセルについての質問です。 以下の様なシフト表を作成しました。    列A   列B   列C 行1 (1)田中  (2)鈴木  (3)山田 行2 (2)石田  (3)西山  - 行3 (3)木村  (4)中山  - 行4 (4)川村  (1)鈴木  (2)田中(良) ・ ・ ・ 同じ番号のグループと重ならないように条件をつけて名前に色を変えたいのですが、6グループあるので条件付き書式は使えません。VBAで当初作成を試みたのですがどうにも上手くいかないので、教えて頂けると大変助かります!!どうかご教授願いますm(_ _)m

  • replaceを使って更に重複レコード削除するには?

    下記のように空白除去、ソート、重複行削除を行いたいのですが、 なかなかうまくいきません。どなたか力を貸して下さい。 ----------------- name    | laptime ----------------- 山田太郎  | 50 鈴木 花子 | 20 山田 太郎  | 10 齊藤 二郎 | 60 山田 太郎  | 30 ------------------ ↓ ----------------- name    | laptime ----------------- 山田太郎  | 10 鈴木花子 | 20 齊藤二郎 | 60 ------------------ * laptime が小さい順 * nameの空白除去 * 空白除去後のnameの重複行削除(laptimeが一番小さいものを残す) 下記のようにSQL文を作って発行してみたのですが、 SELECT DISTINCT replace( replace( trim( name ) , ' ', '' ) , ' ', '' ) AS name_a, laptime FROM tyouhuku ORDER BY laptime ASC ----------------- name_a  | laptime ----------------- 山田太郎 | 10 鈴木花子 | 20 山田太郎 | 30 山田太郎 | 50 齊藤二郎 | 60 ------------------ と、空白削除とlaptimeソートまで出来てるのですが、重複行削除ができませんでした。 どなたかご助言、宜しくお願いします!

    • ベストアンサー
    • MySQL
  • EXCEL関数

       A      B        C     D    E 1 田中(東京) 合格   8/1      鈴木 2 山田(大阪) 不合格  8/1      田中  3 鈴木(京都) 合格   8/3      山田 4 山田(大阪) 合格   8/4      伊藤 たとえばA1からE4にこのような入力がされているとします。(D列はなにも入力されていません。) 山田さんが合格のときF列に日付を表示し、そうでなければ空白を表示するにはどうすればよろしいのでしょうか? この場合F4に「8/4」と入るはずなのですが、 =IF(A4=E3 & "*",IF(B4="合格",C4,""),"") という式では空白になってしまうのです。 どうすればよろしいでしょうか。式には"山田"と入力せず、E3と示したいです。 分かる方教えてください。 EXCEL2000を使っています。

専門家に質問してみよう