- ベストアンサー
excelでシートから別シートに抽出する方法
データシートに A B C 佐藤 りんご 25個 木村 オレンジ 3個 伊藤 メロン 12個 伊藤 スイカ 2個 佐藤 イチゴ 40個 佐藤 マンゴー 8個 というデータがあったとします。 それを別のシートに A B C 佐藤 りんご 25個 イチゴ 40個 マンゴー 8個 また別のシートに A B C 伊藤 メロン 12個 スイカ 2個 といったようにAに佐藤とか伊藤とか入力するだけでB、Cが自動で抽出できるようにできますか? 出来れば関数の入力でやりたいのですがわかる人がいましたらご教授ください。
- みんなの回答 (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を選択して必要分、下方向にコピー
その他の回答 (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))&""}
お礼
関数はすごく苦手でしたので助かりました。ありがとうございます。
- mitarashi
- ベストアンサー率59% (574/965)
この手の関数は得意ではないのですが、思い立ってチャレンジしてみました。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は条件付書式で白色にして、忘れてください...
お礼
ありがとうございます。難しいですね。でも助かりました。
お礼
関数をそこまで使いこなせるなんてスゴイですね。すごく勉強になりました。ありがとうございます。