• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで特定の行だけ別シートに抽出する方法)

エクセルで特定の行だけ別シートに抽出する方法

このQ&Aのポイント
  • エクセルで特定の行だけ別シートに抽出する方法についてご質問です。
  • 具体的には、Sheet1にある表から特定の行をSheet2に表示させたいということでしょうか。
  • フィルタをかけずに自動的に表示させる方法についてお教えします。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.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))))

90160622
質問者

お礼

皆様いろいろな回答をありがとうございました。 おかげさまで思っているような表ができました。

90160622
質問者

補足

ありがとうございます。おかげで思っているような表ができました。 ところで、できあがったSheet2を使ってグラフを表示させたいのですが、これまたうまくいきません。 どうも、参照してきた数字を数字として認識できないようなのです。 セルの書式は「数値」を選んでいます。 試しに同じ数値を手入力するとグラフに反映するのですが。。。 いろいろやっかいなことを申しますが、何とぞご教示ください。

その他の回答 (5)

  • doredora
  • ベストアンサー率57% (4/7)
回答No.5

こんにちは 添付画像はシート2です シート1の科目と生徒番号の間に1列挿入し、科目コードのフィールドをつくり、 英数国は1、英は2とコードを振ってあります シート1のフィールド名を必要なセル(シート2)へコピーしたものが添付画像の2行目です シート2のセルG3に =DGET(Sheet1!$A$1:$H$5,D2,$B$2:$C$3) =DGET(データ範囲,フィールド名,抽出条件)となります。 右へ試験回数分ドラッグします シート1に1列挿入したのは、科目の英数国と英とをDGETが判別できない弱点をカバーするためです。 こんな感じでいかがでしょう?

noname#204879
noname#204879
回答No.4

[No.3]の補遺、 ステップ3の「次式」を書き漏らしていました。 =OFFSET(Sheet1!$A$1,SMALL(Sheet1!$H:$H,ROW(A1))-1,MATCH(A$2,Sheet1!$1:$1,0)-1)

noname#204879
noname#204879
回答No.3

添付図参照 1.Sheet1 のセル H2 に式 =IF(B2=Sheet4!A$1,ROW(),"") を入力して、   此れを下方にズズーッとドラッグ&ペースト 2.Sheet2 のセル A3 に次の[条件付き書式]を設定    数式が   =ISERROR(A3)    フォント色 白 3.Sheet2 のセル A3 に次式を入力して此れを右方および下方にズズーッ   とドラッグ&ペースト

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 一例です。 ↓の画像のように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)
回答No.1

例のように、 表中に生徒番号が重複して存在する場合、 ・すべて抽出 ・特定の行だけ抽出 後者の場合、その判断条件は何か? 生徒番号に重複が無く、抽出条件も生徒番号だけと言うのであれば 関数でも(VLOOKUP辺り)出来ると思いますが、 例の表のように重複があるとすると、その他の検索条件が必要であり、 そうなると関数だと少々捻る必要があります。 イメージだけで何も試していませんが、INDEXやMATCH辺りを駆使することになるかなぁと。 マクロで一気に必要な分だけ転記するやり方もありますが、 そこまで手間をかけるべき処理でもないような気もします。 フィルタで限定して特定列のみコピー貼り付けが一番手っ取り早いでしょう。 そんなわけで、 > 該当の列の特定の列だけを表示させる方法はありますか? これが質問の本文だとしたら、回答は「あります」ですね。

関連するQ&A