アプリ版:「スタンプのみでお礼する」機能のリリースについて

成績処理で困ってます。
添付画像のようにA1:B6の中から60点以下の学生の氏名を抽出し、結合したD2の位置に連続して表示させるようなエクセルの関数かマクロがあれば至急どなたかお教え頂きたいのですが・・・
よろしくお願いいたします。

「成績処理」の質問画像

A 回答 (3件)

Sub Sample()


  Dim sString As String 'この変数に60点以下の氏名を結合した文字列を入れます。
  Dim i
  For i = 2 To 6'2行目~6行目までが対象
  '対象行のB列の値が60以下なら変数sStringに、A列のデータ(氏名)+「,」を追加
    If Cells(i, 2) <= 60 Then sString = sString & Cells(i, 1) & ","
  Next i
  '変数sStringが空でなければ最後の「,」を削除(例:B,C,→B,C )
  If Len(sString) > 0 Then sString = Left(sString, Len(sString) - 1)
  Range("D2") = sString 'セルD2に変数sStringの値を反映
End Sub

コレで良いですか?
それとも、マクロの使い方が不明?
    • good
    • 0

マクロでやろうと思うと以下の様になります。



Sub Sample()
  Dim sString As String
  Dim i
  For i = 2 To 6
    If Cells(i, 2) <= 60 Then sString = sString & Cells(i, 1) & ","
  Next i
  If Len(sString) > 0 Then sString = Left(sString, Len(sString) - 1)
  Range("D2") = sString
End Sub

集計表示の方法を考え直した方が良いと思います。Excel的ではありません。

この回答への補足

すみません、素人なものでもう一つ質問なのですが、上記のマクロの意味が分かっていません。できましたら説明頂ければ幸いです。

補足日時:2014/07/29 14:42
    • good
    • 0

オートフィルタを使えば楽ですが、元表をいじりたくないなら



D1に「点数」、D2に「<=60」と記入し
フィルタの詳細で、リスト範囲に「A1:B6」、検索条件範囲に「D1:D2」を指定
抽出先を「指定した範囲」に変更して、抽出範囲に「F1」を指定し「OK」すると
該当データが抽出されます
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!