• ベストアンサー

excelでシートから別シートに抽出する方法

データシートに A   B    C 佐藤 りんご  25個 木村 オレンジ 3個 伊藤 メロン  12個 伊藤 スイカ  2個 佐藤 イチゴ  40個 佐藤 マンゴー 8個 というデータがあったとします。 それを別のシートに A   B    C 佐藤 りんご  25個    イチゴ  40個    マンゴー 8個 また別のシートに A   B    C 伊藤 メロン  12個    スイカ  2個 といったようにAに佐藤とか伊藤とか入力するだけでB、Cが自動で抽出できるようにできますか? 出来れば関数の入力でやりたいのですがわかる人がいましたらご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 データシートをsheet1、データ行を10行としています。 (1)別シートのB1に次に数式を入力、配列数式の為、入力完了時にshift+ctrlenterキーを同時押下して下さい。   =IF(COUNTIF(Sheet1!$A:$A,$A$1)>ROW(A1)-1,INDEX(Sheet1!B:B,SMALL(IF(Sheet1!$A$1:$A$10=$A$1,ROW(Sheet1!$A$1:$A$10),99999),ROW(A1))),"") (2)B1を選択、C1にコピー後、B1:C1を選択して必要分、下方向にコピー

taka4bjj
質問者

お礼

関数をそこまで使いこなせるなんてスゴイですね。すごく勉強になりました。ありがとうございます。

その他の回答 (2)

noname#204879
noname#204879
回答No.2

「別シート」において 1.セル B1 に次の[条件付き書式]を設定    数式が    =ISERROR(B1)    フォント色  白 2.セル B1 に配列数式を入力して、此れをセル C1 にコピー&ペースト   {=OFFSET(データシート!$A$1,SMALL(IF(データシート!$A$1:$A$6=$A$1,ROW($A$1:$A$6),""),ROW(1:1))-1,COLUMN(A:A))} 3.範囲 B1:C1 を下方にズズーッとドラッグ&ペースト 【備考】C列に抽出するデータが文字列でもOKなら、当該式の末尾に &"" を付加して次のようにする手もありかと。     {=OFFSET(データシート!$A$1,SMALL(IF(データシート!$A$1:$A$1000=$A$1,ROW($A$1:$A$1000),""),ROW(1:1))-1,COLUMN(A:A))&""}

taka4bjj
質問者

お礼

関数はすごく苦手でしたので助かりました。ありがとうございます。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

この手の関数は得意ではないのですが、思い立ってチャレンジしてみました。1行目と、2行目の式を変えないといけないのが不満なところです。関数の達人が大勢いらっしゃいますので、もっとすっきりした回答が出てくるでしょう。 Sheet1がデータシートで、Sheet2に抽出するとします 以下、Sheet2の記述です ......................A...............B...............C...............D ..1.........佐藤................1.....りんご.....25個 ..2................................5.....イチゴ.....40個 ..3................................6.マンゴー.........8個 ..4..........................#N/A.........#N/A.........#N/A ..5..........................#N/A.........#N/A.........#N/A 作業列Bを用います。非表示にして、我慢してください。 B1の式=MATCH($A$1,OFFSET(Sheet1!$A$1,0,0,ROWS(Sheet1!$A$1:$A$100),1),0) B2の式=MATCH($A$1,OFFSET(Sheet1!$A$1,B1,0,ROWS(Sheet1!$A$1:$A$100),1),0)+B1 ※Sheet1!$A$1:$A$100の所は元データの大きさに応じて変更して下さい。 以下、下方にドラッグ C1の式=OFFSET(Sheet1!$A$1,$B1-1,1,1,1) 以下、下方にドラッグ D1の式=OFFSET(Sheet1!$A$1,$B1-1,2,1,1) 以下、下方にドラッグ 検索範囲も本当は縮小しないといけないのですが、手抜きです。 #N/Aは条件付書式で白色にして、忘れてください...

taka4bjj
質問者

お礼

ありがとうございます。難しいですね。でも助かりました。