• 締切済み

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

A3:E3に横に仕入れ先、品名、数量、金額の項目がありランダムに15行データが入っています。 この表をG3:J17に仕入れ先AをM3:Q17に仕入れ先Bをという順番で仕入れ先毎にデータを抽出する方法を教えてください。 サンプル表を添付します。

みんなの回答

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.7

> 抽出したデータを業者毎の発注表として活用するので関数でお願 > いします。 だから数式じゃないとダメってのはどういう理屈なんでしょう。 抽出だけならセルの値をパラメータにしてクエリを1つ作れば済み ます。 Excel2013なら PowerQueryが使えるでしょう。 わざわざ手間かけて数式で頑張ったところで Excel2013が来年 4月 で延長サポートが切れることを考えたら掛けた手間は無駄になる でしょう。 新しい Excelでは FILTER関数一本で済む話だからです。

全文を見る
すると、全ての回答が全文表示されます。
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.6

[No.5]用の“忘れ物”です。m(_._)m

全文を見る
すると、全ての回答が全文表示されます。
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.5

添付図参照(Excel 2019) 1."仕入先"@ に書式設定したセル G1、L1、Q1 に文字列 A、B、C を入力して、それぞれのセルを含めて右方4列ずつセル結合 2.私の技量不足で151行目を作業用として使用、式↓  ̄ ̄=OFFSET($G$1,,INT((COLUMN(A1)-1)/5)*5)  ̄ ̄を入力したセル G151 を右方にズズーッと(U列まで)オートフィル 3.配列(SCE)数式↓ =IFERROR(INDEX(INDIRECT(G$2),SMALL(IF(仕入先=G$151,ROW(仕入先)),ROW(A1))-2),"")  ̄ ̄を入力したセル G3 を右方T列まで&下方(全列が空白になるまで)ズズーッとオートフィル オ・シ・マ・イ この私の投稿をご覧になった方へお願いです。 ステップ3の式中の G$151 にステップ2の式 OFFSET($G$1,,INT((COLUMN(A1)-1)/5)*5) を代入すれば作業用の 151行目は不要のはずと思っているのですが、期待通りにならない理由が分からず戸惑っています。お分かりになるなら教えてください。m(_._)m

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

#1です。 データを抽出する課題で、作業列を使う方法は、OKWAVEの質問に対し、今までもimogasi方式とか自称して、回答を挙げてきました。 これを避けるためには、例えばA列でセルの値のaaが、「n(式の中で指定)番目に現れる行は何行目か」を返してくれる関数があれば、作業列は不要になることに気づき、そういうユーザー関数を作って、やってみました。 今回の質問者向け、ではないかもしれないが、他の方の参考になる場合もあると思って。そのうちFILTER関数が使えるバージョンが使われて、必要なくなるでしょうが。 ーー VBAですが、標準モジュールに Function banmeR(rng As Range, s As String, n As Long) i = 0 For Each cl In rng If cl = s Then i = i + 1 If i = n Then banmeR = cl.Row End If End If Next End Function === 例データ Sheet1のA1:B10に 品名 価格 aa 10 bb 20 aa 30 bb 40 cc 50 aa 60 bb 70 cc 80 bb 90 とあるとする。 ーー 品名aaだけを抜き出す、関数は =INDEX($A$1:$B$10,banmer($A$1:$A$10,"aa",ROW()-13),COLUMN()-5) これは式をF14から入れる(抽出したデータを置く)場合の式です。 COLUMN()-5は、直前のE列が第5番目の列なので-5した, ROW()-13は14行目に入れるので-13しています(F14は気まぐれで決めた)。 banmerは定義した関数の名前です。このブック内のシートでしか使えません。 ーー 結果 F14:F17 aa 10 aa 30 aa 60 #VALUE! #VALUE! なお、#VALUE!は、IFERROR関数を被せれば、消せます。 =IFERROR(上記の式,””)など。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#1です。 この質問に付いての、考え方につて、是非知ってほしい。 (1)最近では、「関数でやりたい」だけでは済まないのだ。関数も2016,2019,2021、365あたりから、数が増えた(それも重要なもの)り、新しい考え方(「スピル」、ラムダ式など)も出ているからだ。 2013は残念ながら、その前のものです。 だから旧来の考え・関数でやらざるを得ない。FILTER関数が使えないのが痛い。 (2)そして小生が#1で分けて例示したように、関数でも、作業列を使うことを我慢するかどうかが、ある。 #2の回答でも、作業列を使う回答のようだ。 そもそも、エクセル関数で、データ抜出しの課題をやるのは、難しい課題だと思う。 ここの質問者は、そのむつかしさに気が付いていないので、作業列を使う式は、敬遠しているようだ。 ーー 作業列を使わない場合は(1)難しい式の組み合わせが必要(2)配列数式(3) SUMPRODUCT関数の応用でできないか、などが過去の同種の質問での、回答タイプだったように思う。 (3)操作で、フィルタ―(その後可視セル範囲のコピー)を使えば、仕入れ先A,B、・・ごとの部分表にできるのでは。 データの或る行と同じ行範囲(且つ範囲外の列)内に、抽出データを出している場合は、フィルタアイコンをもう一度クリックすると、全貌(全行)が見える。 (4)関数でやる場合、品名のA、B、C・・の文字列をG3セル、M3セル、S3セ ル・・(離れた列にある。それが難しさの原因)にほしい(必要な)、のだが、この問題まで、関数で出すとすると、式の複写方式では出来ないだろう。結局、人間の判断や操作が必要になるのでは。 質問者はどういう箇所が、難しいことになるかわかってない、のではと思う。 だからある程度(重複のない品名を、望みのセルに手操作で入力するの)は我慢しなくてはならないだろう。こういうのはVBAなら、プログラムを組む段階で、決めて、プログラムに組み込むので、この表のユーザーはエクセル素人でもよい。

全文を見る
すると、全ての回答が全文表示されます。
  • SI299792
  • ベストアンサー率48% (719/1487)
回答No.2

G列の仕入れ先は不要だと思うのですが。 バージョンは何ですか。バージョンによって使える関数か変わるので面倒です。 共通 F1: A G1: ="仕入れ先"&F1 Excel2021 or OneDriveなら G3: =FILTER(A:E,A:A=F1) Excel2019 以前なら、 F列をワークエリアに使います。目障りならフォントを白又は非表示にして下さい。 F3: =F2+($F$1=A3) G3: =IFERROR(INDEX(A:A,MATCH(ROW()-2,$F:$F,0)),"") G3をK3迄コピペ。 纏めて下へコピペ。 F1をプルダウンにしておけば、切り替えが不要なので、L列以右は不要です。 それでも作りたい場合、 検索と選択、置換で数式の$ を消します。 F~K列をL列へコピペ、L1を変更、この処理を繰り返します。 F1をプルダウンにするなら、自動でプルダウンが作成された方がいいと思います。 (補足に書いていただければ、作り方を上げます)

JaReo
質問者

補足

バージョンはエクセル2013です

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

仕入れ先・列でソート(並べ替え)して、仕入れ先Aの塊(行範囲)を(目視で判別し)望みの場所に張り付けたら仕舞い。 これが一番早い。 ーー どういう方法でということを、質問に書かないから、こう言う回答をした。 下記(1)関数を希望か? エクセルは関数がすべてではないよ。 ーー 方法は (1)関数 (1’)作業列を使ってよいか (2)操作(フィルタなど) (3)VBAなど利用 (4)その他、便利な(フリー)ソフト利用 (5)データベースソフト(Accessのようなもの)

JaReo
質問者

補足

抽出したデータを業者毎の発注表として活用するので関数でお願いします。

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

関連するQ&A

  • データ抽出方法について

    エクセルてA列に同じ番号が2個づつありB列に種類としてA、B、Cの3種類があります。 C列からE列まで品名がありこのデータの中から番号と種類の2項目をキーに抽出したい。 サンプル表を添付しますのでよろしくお願いします。

  • EXCEL重複データの抽出に関する質問

    仕事で行き詰っています。 過去5年分くらいの仕入実績価格表(EXCEL)データから最新の価格のみを抽出する場合、どのような手順をふめば良いでしょうか? <元データに入っている項目> (1)品名(2)仕入年月日(3)数量(4)単価 <抽出したいデータ> (1)品名(2)単価 品名が重複している場合は、一番直近に仕入れた単価を適用したいです。つまり一点一様の単価表を作成したいのです。 データは2000件以上はあるかと思います ピボットにて品名と単価抽出はできるかと思うのですが、最新価格のみ抽出する方法がわかりません どなたかお知恵を貸していただけないでしょうか 詳細不足していましたら、ご指摘ください 宜しくお願いします

  • EXCELで100行に1行ずつ抽出したい

    現在卒業研究中でエクセルを使っています。 そこで分からない事があるんですが、約10万行のデータがある列から100行に1行ずつ抽出し、横に1000行の列を作りたいと思ってます。 抽出する行は[1,101,201...]や、[100,200,300]等、番号は問いません。ただランダムではなく、100行ずつ順番に並べたいです。 どなたか詳しい方いらっしゃいましたら、教えていただけないでしょうか? よろしくお願いいたします。

  • エクセル2003 データの抽出

    excel2003を使用しています。 A列に8桁のコード、B列に、そのコードの品名が入力された表があります。 この表の中から、最初の4桁だけ一致するデータを抽出したいのですが どうすればよいでしょうか? オートフィルタオプションを使ってみたのですが、うまくできません。 よろしくお願いいたします。 例:12348888、12349999、12346666、32224434、46732235・・・・と並ぶコードの中から、 1234×××× のコードの行だけが、表示されるようにしたい。

  • データ抽出のコピーの仕方を教えてください。

    エクセル2007で表を作っています。 シートAに、1行目が項目で2行目以降データです。350行ほどあります。 シートAのそのデータにフィルタを使って、3件ほど、抽出しました。 シートBに抽出したデータと1行目の項目を列幅やセルの色などそのままコピーしたいのですが、 コピー→貼り付けだと、書式がコピーできません。 項目と抽出したデータをそのまま、まるっとコピーできないでしょうか?

  • シート1とシート2のデータ一致 抽出方法

    エクセルのデータ抽出でお知恵をお貸し下さい。 シート1 A列  B列     C列 品名  製品番号  数量 AA    1AAAA    200 BB    1BBBB    250 CC    1CCCC    300 シート2 A列   B列     C列 品名  製品番号   数量 AA    1AAAA   200 BB    1BBBB   250 AB    AAAA    500 CC    1CCCC   300 上記のようなシートがあります。 内容は同じなのですが、シート2にはシート1にはない品名、製品番号、数量が含まれます。 シート1の品名、製品番号、数量がすべて一致するものをシート3へ抽出し、 一致しなかったデータ(シート1にはなく、シート2にあるものを含め)をシート4へ抽出したいのですが 何か良い方法はないでしょうか??

  • データシートから他のシートへ抽出

    元データ:(2)データシート 抽出シート:(6)抽出シート (2)データシートには、    B     C    D    E    F    G・・・・・・P 4 (項目) (内容)  (数量) (単位) (単価)  (金額) (仕入先) 5 りんご   果物   1    個  100   100   A商店 6 みかん  果物   2    個  100   200   B商店 7 ジュース 飲料   3    本  100   300   A商店 8 牛乳    飲料   2    本  100   200   A商店                ・                ・                ・ とあります。  これを(6)抽出シートのA3セルに仕入先名を入れることで、 (6)抽出シート   A   B    C     D   E   F   G 3 A商店                               ・                ・ 21   (項目) (内容) (数量)(単位)(単価)(金額) 22   りんご  果物   1   個 100  100 23   ジュース 飲料   3   本 100  300 24    牛乳  飲料   2   本 100  200                ・                ・                ・ 上記の様にB22(項目)、C22(内容)、D22(数量)等を抽出したいのですが、VLOOKUPを使ってもりんごのみを何件も抽出したりで困ってます。 ちなみに(6)抽出シートはある程度の雛形が決まっています。 何かいい方法はありますでしょうか。 どうぞご教授宜しくお願い致します。 図が変になってしまってすいません。

  • エクセル グループ小計について

    "項目としてA1に順番、B1に色、C1に数量1、D1に数量2、E1に数量3、F1に数量4にそれぞれ数値があります。 B2~B25までに茶、黒、白、がランダムに入っています。 色が変わる度に小計を自動的に表示する方法はないのでしょうか。 ただし、順番の並びは変更しない方法とする。 サンプル表を添付します。 よろしくおねがいします。

  • Excel データの抽出について

    年始のお忙しいところ失礼いたします。 Excelにおけるデータ抽出についてお尋ねいたします。 抽出元データは左から1番目のシートのA列から順に、日付、部門名、商品名、数量0、記号、数量1、記号、数量2、記号、数量3、記号、残り数量となっています。 残り数量の列には、『=数量0-数量1-数量2-数量3』 という数式が記述してあります。 今回は、左から3番目のシートに、商品名、数量0、残り数量の3列の条件式を入力する場所と条件式に合致するデータを表示する場所を作成して、条件式に合致するデータを抽出することを検討しています。 条件式 商品名列:商品名の中から1つの商品を抽出 数量0:数量0=40、数量0<=10など数量0の値が入力した任意の数量と=またはは、以下(<=)を抽出 残り数量:残り数量<>0、残り数量<=20など残り数量の値が0以外か、入力した任意の数量以下を抽出 条件式を書き換える(抽出条件を変更する)ことが多いため、書き換える(条件を変更する)たびに、表示されるデータが更新されるようにしたいです

  • エクセルでランダムに抽出後、一つのセルにまとめる方法

    エクセル初心者です。 エクセルのシート1に A列の1行目~10行目にA~Jまでの文字が入力されています。 これをシート2の B列の1~100行目に シート1からランダムで抽出した3つ又は4つの文字を ACE DFG ・・・・ のように埋めるには、どのような式を入れればできるのでしょうか? 文字はだぶらないように抽出したいと思います。 文字はCAEのように、順番が逆になっても構いません。 むしろ時々逆になったりするほうが都合がよいです。 抽出される文字数も、3つだけでなく、ランダムで4つ抽出するときも あるようにしたいです。 オフィス2003を使用しています。 ご回答よろしくお願いします。

専門家に質問してみよう