• 締切済み

エクセルの関数を使った抽出方法

エクセルの関数を使った抽出方法 Excelで下記のような例で抽出は出来るでしょうか? 当方はオフィス2003使用です。 何かよい方法をご存知の方がいらっしゃいましたらご指導願います。 よろしくお願いいたします。 sheet2の製品名と製品番号はsheet1の日報か抽出して出しているので関数の数式が入ってます。 【抽出前】sheet2 製品名   製品番号   AL    1D8597   BL     6F1472    BL     7Y8654    BL     9P3256     CL     3K2145      CL     2Q6321       DL     8T4578     EL     5X7412   EL     4S9127   FL     7F2369   AL      8R8456 【抽出後】sheet3 製品名   製品番号   AL    1D8597        AL     8R8456        【抽出後】sheet4 製品名   製品番号 BL     6F1472  BL     7Y8654  BL     9P3256   【抽出後】sheet5 製品名   製品番号 CL     3K2145    CL     2Q6321     以下同じです。

みんなの回答

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

 この質問に回答が付くのが遅かった理由は、質問のカテゴリーが不適当なからだと思います。  もし、カテゴリーを デジタルライフ > ソフトウェア > Office系ソフト か或いは デジタルライフ > ソフトウェア > MS Office にされておられれば、おそらく直ぐに回答が付いたのではないかと思います。  閑話休題  今仮に、全てのSheetにおいて、A列に製品名、B列に製品番号のデーターが並び、1行目には製品名や製品番号といった項目名があり、データーは2行目以下から並ぶものとします。  又、以下の方法では、作業用のSheetとして「作業Sheet」という名称のSheetを設けて、そのA列とB列を作業列として使用します。  それと、処理の方法の都合で、抽出結果を表示させるSheetの名称は、必ずSheet3、Sheet4という様に、「『4文字の文字列』+『3以上の自然数』」という形式にして、Sheet名の中の数字は連番となる様にして下さい。  まず、「作業Sheet」という名称のSheetを設けて下さい。  そして、作業SheetのA2セルに次の数式を入力して下さい。 =IF(OR(Sheet2!$A2="",COUNTIF(Sheet2!$A$1:$A1,Sheet2!$A2)>0),"",COUNT(A$1:A1)+1)  次に、作業SheetのB2セルに次の数式を入力して下さい。 =IF(Sheet2!$B2="","",COUNTIF(Sheet2!$A$1:$A2,Sheet2!$A2))  そして、作業SheetのA2~B2の範囲をコピーして、同じ列の3行目以下に、Sheet2のデーターが表示されている行数を上回るのに充分な回数だけ、貼り付けて下さい。  次に、Sheet3のA1セルに「製品名」、B1セルに「製品番号」と入力して下さい。  次に、Sheet3のA2セルに次の数式を入力して下さい。 =IF(VALUE(MID(CELL("filename",A2),FIND(".xls]",CELL("filename",A2))+10,LEN(CELL("filename",A2))))-2>MAX(作業Sheet!$A:$A),"",INDEX(Sheet2!$A:$A,MATCH(VALUE(MID(CELL("filename",A2),FIND(".xls]",CELL("filename",A2))+10,LEN(CELL("filename",A2))))-2,作業Sheet!$A:$A)))  次に、Sheet3のB2セルに次の数式を入力して下さい。 =IF(OR($A$2="",ROWS($1:1)>COUNTIF(Sheet2!$A:$A,$A$2)),"",INDEX(Sheet2!$B:$B,SUMPRODUCT(ROW(Sheet2!$B$1:$B$999)*(Sheet2!$A$1:$A$999=$A$2)*(作業Sheet!$B$1:$B$999=ROWS($1:1)))))  尚、Sheet2にデーターが存在する行が999行を上回る場合には、上記のB2セルに入力する数式中の「999」となっている部分を、Sheet2のデーターが存在する行数を上回るのに充分な数に変更して下さい。  次に、Sheet3のB2セルをコピーして、B3セルに貼り付けて下さい。  次に、Sheet3のA3セルに次の数式を入力して下さい。 =IF($B3="","",$A$2)  それから、Sheet3のA3~B3の範囲をコピーして、同じ列の4行目以下に、Sheet2のリスト中に最も多く存在する製品名の数を、上回るのに充分な回数だけ貼り付けて下さい。  次に、製品名の種類数を上回るのに充分な枚数だけ、新規のワークシートを挿入して、それらのSheet名が全て「『4文字の文字列』+『3以上の自然数』」という形式になっていて、途中の数字に欠けが無い様にして下さい。(数字に欠けがある場合や、4文字の文字列の後に数字が続いている名称では無い場合には、Sheet名を修正して下さい)  それから、Sheet3のA列とB列をコピーして、Sheet4以降のSheetのA列とB列に貼り付けて下さい。  以上で完成です。

chris716
質問者

お礼

ご回答ありがとうございました。参考になりました。

関連するQ&A

  • エクセルの関数を使った抽出方法

    エクセルの関数を使った抽出方法 Excelで下記のような例で抽出は出来るでしょうか? 当方はオフィス2003使用です。 何かよい方法をご存知の方がいらっしゃいましたらご指導願います。 よろしくお願いいたします。 【抽出前】sheet1 製品名   製品番号   AL    1D8597   BL     6F1472    BL     7Y8654    BL     9P3256     CL     3K2145      CL     2Q6321       DL     8T4578     EL     5X7412   EL     4S9127   FL     7F2369   AL      8R8456 【抽出後】sheet2 製品名   製品番号   AL    1D8597        AL     8R8456        【抽出後】sheet3 製品名   製品番号 BL     6F1472  BL     7Y8654  BL     9P3256   【抽出後】sheet4 製品名   製品番号 CL     3K2145    CL     2Q6321     以下同じです。      

  • エクセルの関数を使った抽出方法

    エクセルの関数を使った抽出方法 お世話になります。Excelで下記のような例で同じ製品が複数存在するリストから 製品が重複しないようにリスト化することは可能でしょうか? 「重複の削除」を使わずに抽出したいです。 当方はオフィス2003使用です。 sheet1が日報でsheet2が請求書です。金額は抽出して合計しなくていいです。 あくまでも製品名だけをsheet2の請求書に抽出したいです。 何かよい方法をご存知の方がいらっしゃいましたらご指導願います。 よろしくお願いいたします。 【抽出前】sheet1 製品名   金額   A     ○円   B     ○円     B     ○円    B     ○円    C     ○円     C     ○円      D     ○円     E     ○円   E     ○円   F     ○円 【抽出後】sheet2 製品名   金額   A     ○円   B     ○円      C     ○円   D     ○円   E     ○円   F     ○円

  • Excelで[表1]にあって、[表2]にないものを抽出する関数

    Excelで[表1]にあって、[表2]にないものを抽出する関数 例)[表1]   [表2]    A社     A社    D社     D社    R社     P社    P社     R社    D社    F社    F社 上記は簡単に書きましたが、表1に重複するものも含め、300社程度あるなかで 表2にリストアップされていない会社を見つける関数やその他方法論があれば ぜひ教えてください! (例でいえば、F社を見つける方法です。) 抽出するのは別シートでも、同じシートでも構いません。 Excel2003でも対応できるものであれば、なお嬉しいです。 よろしくお願いします。

  • エクセルの関数などを使って図の抽出はできるのか?

    関数などを使って、別シートにある図を任意の箇所に抽出することって可能なのでしょうか? 支店名を入力することによって、別シートに、項目ごとに作成したリストに登録されている支店の情報(住所・電話番号、支店の設備状況、売上など)の中から必要な情報を関数のVLOOKUPやMATCHとINDEXの組み合わせなどを使って、フォームに抽出するようにしました。さらに支店の所在地を示す図(エクセルのオートシェイプ機能などで作成した)をフォームに抽出したいのですが、「支店名」などのキーワードを打ち込むことでその支店の見取図などの図を任意の場所に抽出させる関数もしくは適当な方法はあるのでしょうか? 支店が多数あるのですが、エクセルのオートシェイプ機能で作られた簡単な見取図が既にあるため、それを利用したいのです。よろしくお願いします。

  • エクセルの関数が?分かりません???

    エクセルの↓ような期別で分けてあるシートが4枚あって   A     B    C    D   P   Q     R 1 商品名 カラー名 商品区分名 6月~5月 数量合計 数量平均 2 3 . . 商品名の同じもの同志(それぞれのシートに1つずつあるけど、ないものもあります。)で期の順に新しいシートにまとめて表を作りたいのですが、 関数がわかりません。VLOOKUPだと思うのですが、使い方を間違えているのか全くできなくて困っています。どなたか分かる方どうかわかりやすく教えて下さい。 よろしくお願いします。 

  • 二次関数

    高1の二次関数について質問です。 y=f(x-p)+q は y=f(x) をx軸方向にp、 y軸方向にqだけ移動したものですよね。 このとき、f(x)=ax^2+bx+c とすると、 f(x-p)+qはどう表せますか。 よくわからないので教えていただけたら嬉しいです。

  • 合成関数の偏微分

    z=f(x,y)で  x=rcosθ y=rsinθ としたとき ∂z/∂r = cosθ(∂z/∂x) + sinθ(∂z/∂y)  ∂z/∂θ = r×{-sinθ(∂z/∂x) + cosθ(∂z/∂y)} となりますよね。 次にこれらを ∂z/∂r = P   ∂z/∂θ = Q  とおいて 2階偏導関数 ∂P/∂r = (∂P/∂x)(∂x/∂r) + (∂P/∂y)(∂y/∂r)  ∂Q/∂θ = (∂Q/∂x)(∂x/∂θ) + (∂Q/∂y)(∂y/∂θ)  を求めたいのですが ∂P/∂x や  ∂Q/∂x を求めるときに cosθ(∂z/∂x) についている cosθ や r×{-sinθ(∂z/∂x) + cosθ(∂z/∂y)} についている r は 定数として扱うべきなのでしょうか?それとも変数とみて積の微分法を 用いればよいのでしょうか? 考えてみれば cosθ = x/r で (x,r)の関数ですから cosθは xで偏微分できそうですし r=x/cosθ で (x,θ)の関数ですから rも偏微分できそうです。 しかし解答をみる限りでは偏微分していません。 誰か教えていただけるとありがたいです。

  • 合成関数の偏微分について

    z=f(x,y)で  x=rcosθ y=rsinθ と置いたとき ∂z/∂r = cosθ(∂z/∂x) + sinθ(∂z/∂y)  ∂z/∂θ = r×{-sinθ(∂z/∂x) + cosθ(∂z/∂y)} となりますよね。 次にこれらを ∂z/∂r = P   ∂z/∂θ = Q  とおいて 2階偏導関数 ∂P/∂r = (∂P/∂x)(∂x/∂r) + (∂P/∂y)(∂y/∂r)  ∂Q/∂θ = (∂Q/∂x)(∂x/∂θ) + (∂Q/∂y)(∂y/∂θ)  を求めたいのですが ∂P/∂x や  ∂Q/∂x を求めるときに cosθ(∂z/∂x) についている cosθ や r×{-sinθ(∂z/∂x) + cosθ(∂z/∂y)} についている r は 定数として扱うべきなのでしょうか?それとも変数とみて積の微分法を 用いればよいのでしょうか? 考えてみれば cosθ = x/r で (x,r)の関数ですから cosθは xで偏微分できそうですし r=x/cosθ で (x,θ)の関数ですから rも偏微分できそうです。 しかし解答をみる限りではいずれも定数として扱われているようです 何故だかさっぱりわかりません。 どなたか知恵を貸していただけるとありがたいです。

  • 次の関数の導関数を定義から求めよ、という問題です

    次の関数の導関数を定義から求めよ、という問題がわかりません 問題(1)y=px+q(p、qは定数) y’=lim h→0  f(x+h)-f(x)/h で、fにpをいれてp(x+h)+q・・・・ 問題(2)y=3x^2-7  y’=lim h→0   どう代入していったらいいかわかりません。

  • 二次関数の平行移動

    二次関数の平行移動 理解できないところがたくさんあります。 ほとんど教科書丸写しなのですが 二次関数 F…y=x^2 を x軸方向にp, y軸方向にq だけ平行移動して 得られる二次関数G上に任意の点P(x,y)をとり、 平行移動前のF上の点Qを(X,Y)とすると x=X+p , y=Y+q → X=x-p , Y=y-q よって 点Q(x-p,y-q)で表される。 これをFの式に代入して y-p=(x-p)^2  → y=(x-p)^2+q これはGの式である。 ----------------------------------- (1)なぜ元の二次関数Fの点ではなく 動いた後の二次関数Gの点を(x,y)と基準?としているのかがわかりません。 「そうすると説明が上手くいくから」でしょうか? 平行移動する前を基準として考えれば 平行移動後が(x+p,y+q)になるじゃん!と思ってしまいます…;; (2)F上の点Qの座標をFの式に代入した式なのに なぜGの式になるのかがわかりません。 あと…… 任意という言葉の意味がいまいちわかりません。 その言葉の効果はどこで現れますか?? いってることが全ておかしかったらすみません。 理解力がほとんどありません。 よろしくお願いします。

専門家に質問してみよう