• 締切済み

エクセル 複数の列から共通の文字を抽出する

本を見たりネットで調べましたが全く同じものでは無かったため、うまく自分で解釈出来なかったので教えてください…。 以下のような表があるとします     A     B     C     D    1 会社名   担当   担当   担当 2 吉野家   吉田   金子   八木 3 松屋     金子   進藤   新庄   4 すき家   八木    吉田  高橋    これを人別に抽出したいのですが… 例えば… 吉田が担当の会社を抽出したい     A     B     C     D    1 会社名   担当   担当   担当 2 吉野家   吉田   金子   八木 3 すき家   八木    吉田  高橋  4 松屋     金子   進藤   新庄  こんな風に(>_<) 本当の表はもっと多いのですが…。 1つの列しか抽出できなくて B列だけ反映されて以下のような事になります…。     A     B     C     D 1 会社名   担当   担当   担当 2 吉野家   吉田   金子   八木 すみませんがよろしくお願い致します!

みんなの回答

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

会社名が一意のリストになっているなら(会社名にダブりが無ければ、という意味です) =IF(ROW(A1)>COUNTIF(B:D,"吉田"),"",INDEX(A:A,SMALL(IF($B$1:$D$99="吉田",ROW($B$1:$D$99)),ROW(A1)))) と記入してコントロールキーとシフトキーを押しながらEnterで入力、以下コピー 他のデータは会社名からふつーにVLOOKUPして引っ張ってきてください。 会社名にダブりがあって会社名からだけではデータを引っ張れないなら =IF(ROW(A1)>COUNTIF(B:D,"吉田"),"",SMALL(IF($B$1:$D$99="吉田",ROW($B$1:$D$99)),ROW(A1))) と記入してコントロールキーとシフトキーを押しながらEnterで入力、以下コピー 実際のデータは =INDEX(A:A,上述で求めた数字) のようにして引っ張ってきてください。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 >本当の表はもっと多いのですが…。 とありますので、やり方だけです。 (列が増えても方法は一緒です) 作業用の列を設けています。 G1セルに検索したい人を入力するとします。 作業列E2セルに =IF(COUNTIF(B2:D2,$G$1),ROW(),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 G3セルに =IF(COUNT($E:$E)<ROW(A1),"",INDEX(A:A,SMALL($E:$E,ROW(A1)))) という数式を入れ列方向・行方向にオートフィルでコピーすると 画像のような感じになります。 参考になりますかね?m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel 文字列の抽出

    Excel初心者です。 1つのセルに以下のデータが入力されています。 A:文字列B:文字列C:文字列D:文字列 このセルの「C:」から「D:」の間にある文字列を 他のセルに抽出する方法を教えてください。 宜しくお願いいたします。

  • 個人ごとで見た時に、2つの列に共通する国名を抽出したいという

    個人ごとで見た時に、2つの列に共通する国名を抽出したいという エクセル2007での質問です。 以下のようなデータの状態があるとします。(例として作成してみました) ------------- ・調査1の結果 A列 名前 B列 好きな国名5個まで ・調査2の結果 C列 名前 D列 好きな国名10個まで ------------- A列とB列、C列とD列の状態は以下のようなイメージです。 鈴木 フランス 鈴木 カナダ 鈴木 タイ 高橋 韓国 高橋 中国 山田 タイ ・全員が回答上限値(調査1なら5カ国、調査2なら10カ国)まで  回答しているわけではありません。 ・A列とC列はキーとして結合することが可能です ・個人で見た時にB列とD列は同じ国が入ることがあります ■質問 個人で見た時に調査1と2で同じ国を回答している場合 どのように抽出すれば良いでしょうか。 新しい列に名前と国名を抜きだす。フラグをたてるなど方法は問いません。 個人ごとにvlookupをしていく方法しか思いつかず。 どなたかお助け下さい。 よろしくお願いします。

  • 関数で2つの条件から抽出する表を作りたい。

    A1は手入力D4手入力、H2は=D2&C2 担当者と週で検索して抽出する式を教えて下さい。 上手く出来なくて1行しか抽出しないんです。  A   B  C      D   E   F  G   H 1担当者 沼田 週    1 2 番号 日付 週 担当 企業 名前 住所 検索用 3 1 7月1日 1 沼田 a 高橋 土浦 沼田1 4 2 7月2日 1 佐藤 a 山田 阿見 佐藤1 5 3 7月2日 1 沼田 r 沖田 水戸 沼田1 6 4 7月7日  1 沼田 c 斎藤 土浦 沼田1 7 5  7月9日 2 佐藤 h 鈴木 牛久 佐藤2 8 6 7月14日 3 佐藤 d 河合 土浦 佐藤3 9 7 7月15日 3 高橋 e 吉田 阿見 高橋3 10 8 7月20日 4 高橋 e 木田 水戸 高橋4 11 9 7月4日 1 沼田 g 飯田 牛久 沼田1 上記の表から1週目だったら、1週目の担当者のデータをシート2の表に抽出 週2だったら2週目の担当者データを抽出 A1・D1は手入力 A3は=IF(COUNTIF(Sheet1!D$2:D$1000,B$1)=0,"",MATCH($B$1&$D$1,Sheet1!$H$2:$H$1000,0)) シート2     A   B   C  D  E  F  G 1  担当 沼田 週 1 2  番号 日付  週  担当  企業  名前   住所 3  1  7月1日  1  沼田   a    会田   牛久 4  4  7月2日  1  沼田   r   沖田   水戸 5  6  7月7日  1  沼田   c   斎藤  土浦  6  9  7月4日  1  沼田   g   飯田  牛久 上記の様にシート2に表示したいんです。 細かく教えて下さい。何度やっても1行目のデータしか抽出しないんです。 A3=IF(COUNTIF(Sheet1!D$2:D$1000,B$1)=0,"",MATCH($B$1&$D$1,Sheet1!$H$2:$H$1000,0)) B3=IF($A3="","",IF(VLOOKUP($A3,Sheet1!$A$2:$H$1000,COLUMN(B1),0)="","",VLOOKUP($A3,Sheet1!$A$2:$H$1000,COLUMN(B1),0))) A4の2行目以降1になってしまって同じ物しか出ないんです。 Aの番号の抽出方法の式を教えて下さい。

  • エクセルで文字列の最大値を抽出する方法

    文字列の最大値を抽出したいのですが 4つのセルにA、B、C、Dが入力されている場合の文字列の最大値Dを抽出する関数式を知りたい エクセルヘルプで見るとMAXAとなっていたのですが抽出する答えは”0”となってしまいます。

  • エクセル 文字列連結演算子で文字列を結合

    文字列連結演算子の「&」 を使って文字列を結合し、その間に()を投入したいです。 A列   B列  C列        D列 高橋太郎 東京  文字連結演算子  高橋太郎(東京) C列 =A1&(B1) ではエラーがでます。正しい書式を教えてください。 A列    B列  C列   D列  E列        F列 高橋太郎 (    東京   )  文字連結演算子   高橋太郎(東京) E列 =A1&B1&C1&D1 ってのは分かるのですが、もっとスッキリするものはないでしょうか? 宜しくお願いします。

  • X個グループからY個ずつデータを抽出したい

    例:グループの数は100ぐらいがあって、グループごとのレコード数はそれぞれであり、毎回そのうちのX(例3)グループずつにデータを抽出します。そして1つのグループから最大Y個(例2)のデータを抽出します。 抽出したデータにフラグを立てて、次の抽出時に除外の条件として使います。 例:以下のテーブルがあって、毎回3グループから2個のデータを抽出します: group name flag ---------------------------------------------------------------------------- 1_group 田中A          0     1_group 佐藤A          0     1_group 林A           0     1_group 鈴木A           0     1_group 牧野A           0     2_group 平田B          0     2_group 小林B          0     ・・・ 3_group 高橋C          0     3_group 丹羽C          0     3_group 田中C          0     3_group 佐藤C          0     3_group 鈴木C          0     3_group 吉田C          0     ・・・ 4_group 高橋D          0     4_group 丹羽D          0     4_group 田中D          0     4_group 佐藤D          0     4_group 鈴木D          0     ・・・ (1)1回目の抽出の結果 group name flag ---------------------------------------------------------------------------- 1_group 田中A          0     1_group 佐藤A          0     2_group 平田B          0     2_group 小林B          0     3_group 高橋C          0     3_group 丹羽C          0     (2)2回目の抽出の結果 group name flag ---------------------------------------------------------------------------- 1_group 林A           0     1_group 鈴木A           0     3_group 田中C          0     3_group 佐藤C          0     4_group 高橋D          0     4_group 丹羽D          0     (3)3回目の抽出の結果 group name flag ---------------------------------------------------------------------------- 1_group 牧野A           0     3_group 鈴木C          0     3_group 吉田C          0     4_group 田中D          0     4_group 佐藤D          0     DBはSqlLiteです。 長いですが、ご教授頂ければ、ありがたいです

  • Excelで複数から1つをランダムに抽出したい

    Excelにあまり詳しくありません。 同様の質問がないか探し、参考にやってみたのですが、 その数式では当てはまらずうまくできなかったため、質問させていただきます。 B13:B90から1つ、 C13:C14から1つ、 D13:D20から1つ、 E13:E16から1つ それぞれランダムに1つずつ抽出したいです。 ランダムに抽出した結果を、 B13:B90から1つ→B2 C13:C14から1つ→B3 D13:D20から1つ→B4 E13:E16から1つ→B5 に表示させるには、どのようにしたらよろしいでしょうか。 例を挙げて説明しますと、 ■ソース:     B   C   D   E・・・ 13 リンゴ 高い 10代 一人暮らし 14 バナナ 低い 20代 二人暮らし 15 メロン    30代 核家族 16 イチゴ        二世帯家族  ・  ・  ・ ■結果: B2:イチゴ B3:高い B4:30代 B5:二人暮らし (項目毎にランダム表示) ということです。 このようなことは可能でしょうか。 ご教授よろしくお願い致します。

  • EXCEL 文字列条件抽出

    特定の文字列を検索条件として別シートに抽出する方法を御教授願います。 使用する関数はLEN,MID,LEFT,ISERR,もしくはワイルドカードなどを使用すればいいのかと考えておるのですがいまいちやりたいような数式を組めず悩んでおります。 やりたいことを言葉で表現するならば以下のような感じとなります。 「sheet1のF列に<107>という文字が含まれていた場合」 ・顧客別シートのD列に顧客ごとに分けて抽出 ・含まれていない場合、抽出しない と、単純なことなのです。が、制約がある為にうまくいきません。 制約は以下となります。 ・検索対象の文字列が以下のように決まった形ではない。 (1)A-BB-107○#----- (2)A-BB-107○#----- (3)ABB107○C #----- (4)ュウリABB-107○#----- (5)ュウリABB107○#----- (6)BB-107○C-D9#-----  など、その他にも数種類存在。(○部分には違う数字が入ります) ・上記でも分かるように<107>が始まる文字列の位置が決まっていない。 という具合です。 操作しているブック構成は下記のとおりです。 ・sheet1・・・参照用シート 4行目 /D列・・・顧客No / E列・・・顧客名 / C列・・・製品仕様 (A列,B列,G~AD列まで使用中) 5行目 / 1 / A / A-BB-107○#----- 6行目 / 2 / B / ュウリABB-107○#----- 7行目 / 1 / A / BB-107○C-D9#----- 8行目 / 3 / C / A-BB-107○#----- 9行目 / 3 / C / BB-107○C-D9#-----  10行目 / 4 / D / A-BB-107○#----- (会社のサーバーで管理している情報がそのままエクセルに打ち出されたシート。 情報量として約1000行ほど) ・sheet2,3,4,5(開始行,項目列は同じ位置)・・・特定の顧客別ごとに分け、特定の製品仕様だけを抽出したシート(参照用から引用)。 4行目/ B列・・・顧客No / C列・・・顧客名 / D列・・・製品仕様 5行目 / / A-BB-107○#----- 6行目 / / ュウリABB-107○#----- 7行目 1 / A / BB-1234C-D9#----- 8行目 / / A-BB-1115#----- 9行目 / / BB-107○C-D9#-----  10行目 / / A-BB-3498○#----- 特定の顧客NoをB列(一つのセルになってます。C列も同様一つのセルになってます)に入力すると、製品仕様すべてを抽出するように作成したシート。このシート内のG列から新たに表を作成し<107>の文字列が含む製品仕様を抽出しようと考えております。 出来れば、このような一度段階を踏んでから特定の仕様を抽出するのではなく各シートに対象となる顧客Noを入力すると特定の仕様が一回で抽出できるようなシートを作成したいのですが、関数初心者の為、うまく組めずこのような形となりました。(現在、参照用シートに作業列を作り対応。作業列ばかりが増えて正直困っているのも確かなのです) 【御教授頂きたいこと】 ・<107>の文字列を条件として別表に抽出する関数の数式 です。 また、出来ればでいいのですが、 ・顧客Noを入力すると特定の仕様が一回で別表に抽出できるような方法が御座いましたら、そちらも合わせてお願いしたいと思っております。 長々と書き綴り、大変申し訳御座いませんが、宜しくお願い致します。

  • エクセル文字の抽出について

    一つのセルに 1.23.5.6 のようにランダムに.で区切られた数字が入っていて .で区切られてる数字を別々のセルに別けて抽出する方法を教えてください(A1に1、B1に23、C1に5、D1に6という風に) 宜しくお願い致します。

  • エクセル 複数列からの同一条件抽出について

    表題の質問をさせていただきます。 B列からF列まで金額の入っている表があります。 基本的に金額の数字なのですが、割引をした場合に金額の数字のまえに「割」と入力しています。 例   1,000・・・割引無し(通常入力)    割1,200・・・割引有り そこで質問させていただきたいのは、 「割」と入力したセルがB2、B16、C9、D18、F5にあったとして、その該当行のみを抽出するにはどうしたらよいのでしょうか。 各行への入力はBからFまでの どれか1セルのみです。 オートフィルタオプションでは一つの列からしか抽出できなくて悩んでおります。 よろしくお願いいたします。

専門家に質問してみよう