• 締切済み

エクセルで必要なデータを取り出す

お世話になります。 エクセル2010なのですが、 「A医院」「内科・小児科・産婦人科」「0420-000-0000」「日曜休診」 「B医院」「外科・心療内科・脳外科」「0421-000-0000」「日曜休診」「C医院」「精神科・小児科・外科」 「059-000-6359」「日曜休診」 1行にこういうデータがあります。 「」はセルです。 条件を満たさない医院を空白にしたいです。 小児科と産婦人科にするとして 小児科と産婦人科両方を満たすものは「A医院」 なので、A医院の該当データである 「A医院」「内科・小児科・産婦人科」「0420-000-0000」「日曜休診」だけを残したいです。 データは表ではありません。上にも書いてある通り、1行になります。 行数が多いので、表に直すということはなしで、 方法を知っている方お願いいたします。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 回答No.3です。  済みません、前に投稿された御質問   質問No.8942835 エクセルの行の抽出    http://okwave.jp/qa/q8942835.html と混乱して、抽出すべき条件を間違えておりました。  指定した複数の蚊が全て揃っている医院のデータのみを残すという事であれば、どこか決められたセル範囲に条件となるかを並べて入力する様にした方が、一々数式を書き直さなくても済みますので便利だと思います。  そういういう訳で、今仮にA2:D2のセル範囲内の何れか2個のセルに「小児科」及び「産婦人科」と入力するものとします。(A2:D2のセル範囲にはセルが4個ありますから、4つの科まで条件として入力可能)  その場合、回答No.3で説明させて頂いたのと同じ設定方法を用いて条件付き書式の設定を行って頂き、その際、「次の数式を満たす場合に値を書式設定」欄の中に入力する数式を次のものと差し替えて下さい。 =SUMPRODUCT(($A$2:$D$2<>"")*((COUNTIF(INDIRECT("RC"&MAX(COLUMN()-2,1)&":RC[1]",FALSE),$A$2:$D$2&"*")+COUNTIF(INDIRECT("RC"&MAX(COLUMN()-2,1)&":RC[1]",FALSE),"*・"&$A$2:$D$2&"*")>0)))<COUNTIF($A$2:$D$2,"<>*?")  尚、下の添付画像では、条件付き書式で条件に合わない医院のデータが入力されている箇所の書式を変更する際に、完全に非表示にしてしまったのでは、どの様な科が入力されているのか判らなくなり、本当に条件を満たしていないかどうかも判らなくなりますので、敢えて薄い水色で表示される様にしております。

worker001
質問者

お礼

お礼遅くなりまして大変申し訳ありません。事情がありましてネットが見られませんでした。 わざわざ、画像をつけていただきまして、恐縮です。 機会がございましたら、またよろしくお願いいたします。ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 「条件を満たす委員のデータのみを別の所にまとめて書き出す」という事ではなく、 >条件を満たさない医院を空白にしたい という事であれば、条件付き書式を使用して条件を満たさない医院のデータを非表示(データとしてはそのまま存在していますが、表示では見えない様にする)にするというのは如何でしょうか?  ※但し、以下の方法では各医院のデータが必ず4列一組で並んでいる事が前提です。 医院のデータが入力されているセルを選択   ↓ Excelウィンドウの[ホーム]タブをクリック   ↓ 現れた「スタイル」グループの中にある[条件付き書式]ボタンをクリック   ↓ 現れた選択肢の中にある[ルールの管理]をクリック   ↓ 現れた「条件付き書式ルールの管理」ダイアログボックスの中にある[新規ルール]ボタンをクリック   ↓ 現れた「新しい書式ルール」ダイアログボックスの「ルールの種類を選択して下さい」欄の中にある[数式を使用して、書式設定するセルを決定]をクリック   ↓ 現れた「次の数式を満たす場合に値を書式設定」欄の中に =COUNTIF(INDIRECT("RC"&MAX(COLUMN()-2,1)&":RC[1]",FALSE),"内科*")+COUNTIF(INDIRECT("RC"&MAX(COLUMN()-2,1)&":RC[1]",FALSE),"*・内科*")=0 と入力   ↓ 「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[表示形式]タブをクリック   ↓ 現れた「分類」欄の中にある[ユーザー定義]をクリック   ↓ 現れた「種類」欄に ;;; と入力   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの「適用先」欄をクリック   ↓ 医院のデータが入力されているリストが設けられているセル範囲をまとめて範囲選択   ↓ 「条件付き書式ルールの管理」ダイアログボックスの[適用]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの[OK]ボタンをクリック

worker001
質問者

お礼

ご回答ありがとうございます。大変参考になりました。回答者様のエクセルの知識に感謝です。

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

提示のデータは1行の中に3組の医院があり、その中の診療科目のセルに複数の科が中黒(・)で区切られていますので、処理が少々面倒になります。 診療科目の内科や外科を検索すると整形外科、脳外科等も検出されます。また、内科では診療内科も検出されます。 これらを回避するためには診療科目の先頭と後尾に中黒(・)を連結して、"・小児科・"や"・産婦人科・"のように検索文字列も加工しなければならないでしょう。 >行数が多いので、表に直すということはなしで、 模擬データは1行のみでなく複数行を提示されることをお勧めします。 また、検索する科目の例も複数を用意されると考え易いでしょう。 結果を別のセルや別のシートへ取り出す場合は関数の組み合わせ数式で処理できますが、検索条件に合わない組み合わせを直接削除する場合はVBAのプログラムを組まなければなりません。 条件を補足して回答を待たれると良いでしょう。 尚、私はVBAが不得手のため提言できません。

worker001
質問者

お礼

ありがとうございます。そのようにさせていただきます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

例示データが1つしかなく、実際のシートのレイアウトが不明なのですが、どの行もA列(A1)からL列(L1)までの16個のセルに4組分のデータが、入力されているレイアウトで、小児科と産婦人科が入力されているデータをN1セルから右に表示させたいなら、以下の式をN1セルに入力して右方向に4つオートフィルコピーしてください。 =IFERROR(INDEX($A1:$L1,MATCH("*小児科*産婦人科*",$A1:$L1,0)+COLUMN(A1)-2),"") #操作の目的やレイアウトなどの詳細が分からないので、ひとまず小児科、産婦人科の順に記載されているセルを検索対象としましたが、逆の順のものも含まれている条件なら、数式を修正する必要があります。 また、検索用語をセルに入力するような場合は、別の数式のほうが合理的なこともありますので、ご質問のような操作がしたい目的を補足されたほうが良いと思います。

worker001
質問者

お礼

お礼遅くなりまして大変申し訳ありません。事情がありましてネットが見られませんでした。 機会がございましたら、またよろしくお願いいたします。ありがとうございました。

関連するQ&A

  • エクセルの行の抽出

    お世話になります。 「A医院」「内科・小児科・産婦人科」「0420-000-0000」 「B医院」「外科・心療内科・脳外科」「0421-000-0000」 「C医院」「精神科・小児科・外科」 「059-000-6359」 というエクセルデータがあるとします。「」までが1つのセルです。 どのような方法でもいいのですが、 内科で抽出したら 「A医院」「内科・小児科・産婦人科」「0420-000-0000」 が行で抽出できる方法はありますでしょうか? 知っている方宜しくお願いします。

  • マクロを使用し、EXCELのデータから必要な部分を取り出し2つのsheetに貼り付けたい

    条件 EXCELのデータ A列からL列まで 複数行(行数は、決まっていない) (例) 40行ほどあるデータを見て 1行目から10行目までをsheet1に 12行目から20行目までをsheet2に貼り付けたい場合。 11行目のA列(空白になっている)に手入力で「a」と入力 21行目のA列(空白になっている)に手入力で「b」と入力し、 1行目から「a」のある行までをコピーし、sheet1に貼り付ける 「a」のある行より1行下から「b」のある行までをコピーし、sheet1に貼り付ける 以上のことをマクロで実行する方法を教えて下さい。

  • エクセル、行数をカウントしたい。

    エクセル初心者です。 よろしくお願いいたします。 エクセルでこのような表を作っています。   A  B  C 1 10 15 2 20 3    10 4    15 5 10 6 10 10 7 8 この時、データの入っている行数をカウントしたいのです。 上の例では 「6」 です。 途中に空白の行はありません。 A列、B列にはどちらにも数字が入る場合と、どちらかにしか 入らない場合があります。 なので COUNT は使えないですよね? 今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK として求めていたのですが、表の長さ(行数)が一定でないため、 体裁が悪くなってしまっていました。 希望としては。 最終行のC列に「終了」などと入れると、その文字列を判別 してくれて、それより上の行数をカウントしてくれる。 または 例えば OR を使って、A列B列どちらかにデータがある 場合のみ、カウントしてくれる。 こんなワガママなことができたら、と思っております。 補足が必要ならばいたします。 それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

  • Excelの複数ブックにあるデータの結合(統合?)

    複数の人から同じフォームに入力をした表が送られてきます。 【表サンプル】 A1 記入者名 2行目に項目が B1 空白 B2 購入日付 B3 金額  のように並んでいます。 3行目からデータが入っており、記入者によって入力する行数が異なります。(最大データ数は20件) 複数名が入力してくるこの表のデータを 1つのシートにまとめたいと思っています。 (各データの記入者情報がわかるようにしたいです) まとめた後、さらに「購入日付」の月ごとのシートに分けることができたら更に助かります。 このような作業をするにはどうしたらよいでしょうか。大変困っています。 わかりづらくて申し訳ありませんが、どうぞよろしくお願いいたします。

  • Excel でのデータのマージ

    ◆シートA 下記の情報が載っています。 行数 名前 性別 好きな食べ物 1行目 太郎 男 (空白) 2行目 桜子 女 (空白) 3行目 次郎 男 (空白) 4行目 三郎 男 (空白) 5行目 菊子 女 (空白) 6行目 梅子 女 (空白) (以下略) で、別のシートには、下記のような情報が載っています。 ◆シートB 別のシートで、下記のような情報があります。 行数 名前 性別 好きな食べ物 1行目 桜子 女 マシュマロ 2行目 菊子 女 チョコレート 3行目 梅子 女 キャンディー (以下略) このシートに出てくるのは、女性だけですが、 出てくる人の順序は、シートAと同じ順序です。 /***********************************************/ ◆質問◆マージをするにはどうすればよいでしょうか? シートAで、性別女性でフィルターを掛けると 名前 性別 好きな食べ物 桜子 女 (空白) 菊子 女 (空白) 梅子 女 (空白) となるので、シートBの「好きな食べ物」の列をコピーして、 シートAに貼り付けたら、全然変な風になってしまいました。 下記のようになってしまいました。 1行目 太郎 男 マシュマロ 2行目 桜子 女 チョコレート 3行目 次郎 男 キャンディー 4行目 三郎 男 (空白) 5行目 菊子 女 (空白) 6行目 梅子 女 (空白) (以下略) /***********************************************/ フィルターされている行にだけ、データを貼り付けたいのですが、 どのようにして、マージをすれば良いのでしょうか?

  • EXCEL VBA 行のコピー

    お世話になります。 添付の表1のデータがあるのですが、これをボタンが押されたら自動で表2のようにしたいのです。 やりたい事・・・ 表1のA3から最下行までREADして品番(A??)と品名(B??)の空白セルを埋めたいのです。(表2黄色部分)各商品は最低でもデータ行が1行あり、各商品の行数は可変です。 最大でも10行程度だと思います。 どなたかご教授いただけますでしょうか? よろしくお願い致します。 環境 Windows XP SP3 Excel2003

  • Excel検索等関数

    Excelのデータで同じ列の中に番号が重複している値を探し出しなおかつ任意の行数に出す関数はありますか? Sheet1   |Sheet2   A  B |   A  B        1 あ 10 | 1 あ  10 2 あ 11 | 2 あ  11 3 い 21 | 3 い  21 4 う 22 | 4      ←A4:b4は、「い」が2行ないので空白        | 5 う  22        | 6      ←A6:b6も、「う」2行ないので空白 このように、縦の重複したセルを検索して、指定行数内の場合は、空白となる関数式があればお教えください。

  • エクセルで特定の行だけ選んで表示させる方法

    エクセルで8000行20列位あるデータの中から A列に30という数値の入っている行と A列が空白になっている行を抽出し なおかつ元のデータをその抽出したデータだけに置き換えたい (A列が30と空白以外の行は削除してしまいたい) のですがどのような方法がありますか? なお、毎月同じような行数のデータを、同じように加工しなければ ならないので簡単に出来るやり方を教えて下さい。 宜しくお願いします。

  • 扱う薬の種類が最も多い診療科は?

    扱う薬の種類(一般名で分けたとき)が一番多い診療科はどこでしょうか? 内科や小児科が多い気がするのですが。 内科、外科、整形外科、形成外科、脳神経外科、小児科、産婦人科、皮膚科、泌尿器科、眼科、耳鼻咽喉科 精神科の中からお願いします。

  • Excel VBA フォームが異なるデータのコピー貼付けする

    マクロの初心者です。 会社で管理しているある表があります。 その表の形式を変えたので、新しい表に自動でデータを張りつけたいです。 元の表は1ページに入力できるデータは15行(あげくにセル結合が一部で使われています)、 新しい表は、1ページに34行入力できます。 同じ行数なら、変数でループをまわせるのですが、元のデータと貼り付け先のデータの行数が異なると、どうしたらいいのか…。 一度、#?にデータを吐き出してから、34行づつ貼り付けていけばいいのかしら?でも、それもどう記述すればいいのか漠然としかわかりません。 いい方法をご存知でしたらぜひ教えてください。 お願いします。

専門家に質問してみよう