- ベストアンサー
エクセルで特定の行だけ別シートに抽出する方法
- エクセルで特定の行だけ別シートに抽出する方法についてご質問です。
- 具体的には、Sheet1にある表から特定の行をSheet2に表示させたいということでしょうか。
- フィルタをかけずに自動的に表示させる方法についてお教えします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
Sheet2のA2セルに入力した生徒番号の一致するSheet1のA列のデータを表示するなら、Sheet2のA4セルに以下の式を入力して下方向にオートフィルします。 =INDEX(Sheet1!A:A,SMALL(INDEX((Sheet1!$B$2:$B$10<>$A$1)*10000+ROW($B$2:$B$10),),ROW(1:1)))&"" 同様に第1回模試および第2回模試のデータは以下のような式になります。 B4セル =IF(A4="","",INDEX(Sheet1!D:D,SMALL(INDEX((Sheet1!$B$2:$B$10<>$A$1)*10000+ROW($B$2:$B$10),),ROW(1:1)))) C4セル =IF(B4="","",INDEX(Sheet1!F:F,SMALL(INDEX((Sheet1!$B$2:$B$10<>$A$1)*10000+ROW($B$2:$B$10),),ROW(1:1))))
その他の回答 (5)
- doredora
- ベストアンサー率57% (4/7)
[No.3]の補遺、 ステップ3の「次式」を書き漏らしていました。 =OFFSET(Sheet1!$A$1,SMALL(Sheet1!$H:$H,ROW(A1))-1,MATCH(A$2,Sheet1!$1:$1,0)-1)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 ↓の画像のようにSheet1に作業用の列を設けます。 作業列H2セルに =IF(OR(B2="",B2<>Sheet2!$A$1),"",ROW()) という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 Sheet2のA3セルに =IF(COUNT(Sheet1!H:H)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!H:H,ROW(A1)))) B3セルに =IF(COUNT(Sheet1!$H:$H)<ROW(A1),"",INDEX(Sheet1!$C:$G,SMALL(Sheet1!$H:$H,ROW(A1)),MATCH(B$2,Sheet1!$C$1:$H$1,0))) という数式を入れ隣のC3セルまでオートフィルでコピー! 最後にA3~C3セルを範囲指定 → C3セルのフィルハンドルで下へコピーすると 画像のような感じになります。 ※ 作業列を使わず配列数式にする方法もありますが、データ量が極端に多い場合は PCに負担をかけますので、あまりオススメできません。 ※ セル配置は実状に合わせてください。 参考になりますかね?m(_ _)m
- tsubuyuki
- ベストアンサー率45% (699/1545)
例のように、 表中に生徒番号が重複して存在する場合、 ・すべて抽出 ・特定の行だけ抽出 後者の場合、その判断条件は何か? 生徒番号に重複が無く、抽出条件も生徒番号だけと言うのであれば 関数でも(VLOOKUP辺り)出来ると思いますが、 例の表のように重複があるとすると、その他の検索条件が必要であり、 そうなると関数だと少々捻る必要があります。 イメージだけで何も試していませんが、INDEXやMATCH辺りを駆使することになるかなぁと。 マクロで一気に必要な分だけ転記するやり方もありますが、 そこまで手間をかけるべき処理でもないような気もします。 フィルタで限定して特定列のみコピー貼り付けが一番手っ取り早いでしょう。 そんなわけで、 > 該当の列の特定の列だけを表示させる方法はありますか? これが質問の本文だとしたら、回答は「あります」ですね。
お礼
皆様いろいろな回答をありがとうございました。 おかげさまで思っているような表ができました。
補足
ありがとうございます。おかげで思っているような表ができました。 ところで、できあがったSheet2を使ってグラフを表示させたいのですが、これまたうまくいきません。 どうも、参照してきた数字を数字として認識できないようなのです。 セルの書式は「数値」を選んでいます。 試しに同じ数値を手入力するとグラフに反映するのですが。。。 いろいろやっかいなことを申しますが、何とぞご教示ください。