• ベストアンサー

データーの並べ替えについて

中村さん100点 田中さん 30点 中川さん 80点 広瀬さん 60点 上記のデーターを得点の上位順に並べ替え テキストボックスに順位 名前 得点を表示させる 方法を教えてください 名前の配列 NAME(1)=中村 NAME(2)=田中 NAME(3)=中川 NAME(4)=広瀬 得点の配列 TOKUTEN(1)=100 TOKUTEN(2)=30 TOKUTEN(3)=80 TOKUTEN(4)=60 表示結果 1位中村100点 2位中川 80点 3位広瀬 60点 4位田中 30点

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

VB2010として、何処がわからないのか?少しやってみたのか。 配列にデータが当初ある設定など、学習のためだけの問題で、あまり現実的ではない。学校の宿題か? ーー (1)配列にデータがあって、まず点数の大から小への並べ替え(ソートという)を行う、アルゴリズムを勉強せよ。 色々アルゴリズムがあるが http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/ バブルソートぐらいが初心者には適当か? (2)(ソートする時に配列の中身を移動させると思うが)名前と点数の配列のペアーを崩さ無いように(両方とも)移動すること。 (1)’ VB2010では配列のソートが出来る。本課題が何に付いての学習かによる。 Googleででも「VB2010 配列 ソート」で照会のこと。 (3)テキストボックスへの表示は名前+点数+改行コードを順位順に結合した文字列(例 s)をつくり、4行分くり返しが終わったら、TextBox1.Text=s にする。前もってTextBoxのプロパティでMultiLine をTRUEに設定しておく。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim s As String Dim a() = {"a", "b", "c", "d"} s = "" For i = 0 To a.Length - 1 s = s & a(i) & vbCrLf Next i MsgBox(s) TextBox1.Text = s End Sub のようなのをやってみよ..

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • a987654
  • ベストアンサー率26% (112/415)
回答No.1

お使いの(なりたい)ソフト名を記載してもらわないと答えようが ありません。 >テキストボックスに順位 名前 得点を表示させる これも意味が判りません。 例えばEXCELでA列に結果、B列に名前、C列に得点で1行目から 並んでいるとすれば A1に =TEXT(ROW(A1),"0位 ")&B1&TEXT(C1," 0点") として必要数だけオートフィル B,C列のデータ領域を選択してC列降順にてソートするだけ。

nao-yui
質問者

お礼

説明不足で申し訳ありませんでした 使用ソフトは、VB2010です。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • php、mysqlを使用した得点ランキング

    現在得点ランキングを作成しています。 mysqlの中に入っているデータを取り出して表示させたいのですが、 なかなかうまくいかず困っています。 mysql内 |id|name| |1|山田| |2|佐藤| |3|山田| |4|鈴木| |5|佐藤| |6|山田| |7|鈴木| |8|田中| としております。 表示方法は 順位| 名前 | 得点数 1位 | 山田 | 3 2位 | 佐藤 | 2 2位 | 鈴木 | 2 4位 | 田中 | 1 としたいです。 mysql内に入っている名前の数で得点数を出してなおかつソートで降順にしたいです。 お分かりの方がいらっしゃいましたらご教示お願いします。

    • ベストアンサー
    • PHP
  • EXCELで重複したデータの処理について

    氏名 | 点数 ----------- 山田 | ----------- 鈴木 | ----------- 小林 | ----------- 高橋 | ----------- 田中 | という表があるとします。 氏名 | 点数 ------------ 山田 | 80 ------------ 鈴木 | 100 ------------ 小林 | 70 ------------ 高橋 | 80 ------------ 田中 | 80 というように点数を入力すると 順位 | 名前 | 点数 ------------------- 1 | 鈴木 | 100 ------------------- 2 | 山田 | 80 ------------------- 2 | 高橋 | 80 ------------------- 2 | 田中 | 80 ------------------- 5 | 小林 | 70 のような表を自動的に作成できるようにしたいのですが、どうもうまくいきません。 順位と点数の並び替えは比較的簡単にできたのですが、それに対応した名前の並び替えがうまくできないのです。 VLOOKUP関数を使用して得点に対応した名前を表示させようとしたのですが、 順位 | 名前 | 点数 -------------------- 1 | 鈴木 | 100 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 5 | 小林 | 70 となってしまい、80点の取得者が全て山田になってしまいました。 このような場合、どのようにすれば正常に並び替えを行うことができるのでしょうか。 言葉足らずで申し訳ありませんが、よろしくお願い致します。 OSはWindowsXP、ソフトはEXCEL2002を使用しています。

  • エクセルの並べ替えについておねがいします。

    名前 点数1 点数2 合計 点数1順位 点数2順位 総合順位 A  20  20  40   3     2     2 B  30  10  30   2     3     3 C  40  30  70   1     1     1 のような表があります。 総合順位順に並べ替えて別シートに表示したいのですが、 順位  名前 合計 1   C  70 2   A  40 (このように)    どうしたらいいでしょうか。 ちなみに点数1、2、合計も 表示できれば幸いです。 あと、別件で、「#N/A」とはどんなエラーメッセージなんでしょう? 表示させないようにするにはどうしたらいいですか。 宜しくお願いします。 

  • エクセルで同率の順位の人が表示されない

    得点表を元に順位(RANK関数)を出し名前順の表にして、 その順位表を元にVLOOKUP関数で順位順の表を作ってます。 この場合、順位順の表では同順位の人がいた場合、同順位2人目以降の人の名前が表示されません(#N/Aと表示されます) 同位の人も名前と得点をそのまま表示させたいのですが、何か方法は有りませんか? 現在↓ 1位 Aさん 10点 2位 Bさん  9点 3位  #N/A  #N/A 4位 Dさん  8点     ・     ・ となります。それを 1位 Aさん 10点 2位 Bさん  9点 3位 Cさん  9点 4位 Dさん  8点 としたいです。 左の順位表記は書きこんでいるだけなので変化しません。もちろん順位に連動して変化してほしいですが、このままでも構いません。 Aさん・Bさんの各セルに=VLOOKUP(Q5,$U$4:$V$21,2,FALSE)のように設定しています。 ずいぶん前に本を見ながら設定したもので、理屈は忘れてます・・エクセル2000です。

  • javaプログラムについて

    クラスの出席番号順にString型配列nameに名前が、 * int型配列scoreにテストの点数が格納されています。 * * 出席番号1 大悟 74点 * 出席番号2 琴音 70点 * 出席番号3 勇輝 88点 *       ・ *       ・ *       ・ *       ・ *       ・ * * このクラスの最高得点者の名前と、最低得点者の名前を * 表示するメソッドを作成してください。 * */ public class MethodAdd8 { public static void main(String[] args){ String[] name = {"大悟", "琴音","勇輝","葵","綾乃","和樹","凛","愛花","結愛","孝太郎"}; int[] score = {74,70,88,82,96,64,80,61,72,79}; //メソッドの呼び出し score("綾乃",1); score("愛花",2); } //ここにメソッドを追加してください public static void score(String name,int score){ if(score==1){ System.out.println("綾乃"); }else{ System.out.println("愛花"); } } } この配列から、最高得点者と最低得点者は分かるので上記のようにしたところ、 score配列の中から最高得点者と最低得点者を探すように、と言われました。 考え方やヒントなどをお願いします。

  • MySQLで関連したデータを横に並べたい

    こういうテーブル「tb」があるとします。 「tb」 bang nama tuki A103 佐藤 4 A102 高橋 5 A104 鈴木 4 A101 中川 4 A103 渡辺 5 A101 西沢 5 A102 中村 6 A104 田中 5 A103 村井 6 A107 吉田 6 A101 小林 4 これを、実行後に、 bang 4月 5月 6月 A101 中川 西沢 NULL A102 NULL 高橋 中村 A103 佐藤 渡辺 村井 A104 鈴木 田中 NULL A107 NULL NULL 吉田 このように、共通するbangで並べ替えたいのです。 A101の4月は、「中川」と「小林」で重複していますが、 このときはひとりだけが選択されてほしいです。 SELECT CONCAT(CASE WHEN tuki='4' THEN name ELSE IFNULL(null,'') END) AS '4月', ~ GROUP BY bang ~ としても、 bang 4月 5月 6月 A101 中川      となってしまい、5月と6月が上手く表示されません。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 少し初歩的な質問です。

    比較しながら順位を付けていくためには、最初に「1」いれといて、「<=」大きければ順位をかえる・・・ ここまで書いて誤っていたことに気がつきました。改めて、最高得点をしる方法と比較して順位をだす関数ありますでしょうか? #.1f(初歩的すぎてすみません)下は頭の中です、合計点の出し方は積み重なっていくというところまでわかっています。順位の出し方も比較しながら数字を入れ替えればいいのかなと思っています。 <?php // 氏名をキーとする。 $tests = array( //点数 "鈴木" => array(92,1), "佐藤" => array(74,1), "中村" => array(42,1), "三浦" => array(65,1) ); $kamokusu = count($tests["鈴木"]); // 科目数 ?> <table border="2"> <tr> <th>名前</th> <th>点数</th> <th>順位</th> </tr> <?php // 個人の得点、合計点、平均点の行を表示 foreach ( $tests as $name => $test ) { echo "<tr>"; echo "<td>" . $name . "</td>"; // 個人名の表示 $total = 0; // 合計点初期化 // 個人の教科別の得点表示と合計点集計を行う foreach ( $test as $tensu ) { echo "<td>" . $tensu . "</td>"; // 得点表示 $total += $tensu; // 合計点集計 } } ?> </table>

    • ベストアンサー
    • PHP
  • pascal

    pascalのプログラミングの質問で、 「名前」と「得点」を入力して得点の高い順に並べ替え、順位をつけて表示するプログラミングを教えてください。お願いします。

  • 1つのSELECTで同時に2種類のデータを調べたい

    500のデータがあります。 1つのデータには、試験1の得点と組が必ずあります。 試験2はある場合とない場合があります。 ない場合はNULLを格納しています。 SELECTで選んで絞込表示させたいです。 試してみたのですが、上手にできませんでした。 ご教示をいただけないでしょうか。 よろしくお願いします。 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title></title> <?php $tokuten = $_GET["tokuten"]; $kumi = $_GET["kumi"]; $selectData = "SELECT * FROM test WHERE 1"; $selectData .= " AND {$t1} <= {$tokuten} AND {$k1} <= {$kumi} AND {$t2} <= {$tokuten} AND {$k2} <= {$kumi}"; $mmm = mysql_query($selectData,$mysql);; $table = "<table>"; while($rrr = mysql_fetch_array($mmm)){  $t1 = $rrr["t1"]; //試験1の得点  $k1 = $rrr["k1"]; //組1の得点  $t2 = $rrr["t2"]; //試験2の得点  $r2 = $rrr["r2"]; //組2の得点  if ( is_null($t2) ) {   $td = "";  } else {   $td = "<td>試験2の得点</td><td>$t2</td><td>試験2の組</td><td>$k2</td>";  }  $table .= "<tr><td>試験1の得点</td><td>$t1</td><td>試験1の組</td><td>$k1</td>{$td}</tr>"; } $table .= "</table>"; ?> </head> <body> <form name="formName" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 得点 <select name="tokuten"> <option value="0">0点</option> <option value="25">25点以下</option> <option value="50">50点以下</option> <option value="75">75点以下</option> <option value="100">100</option> </select> 組 <select name="kumi"> <option value="A組">A組</option> <option value="B組">B組</option> <option value="C組">C組</option> </select> </form> <div id="bbb"><?php echo $table; ?></div> </body> </html>

    • 締切済み
    • PHP
  • 複数条件での順位表示

    サッカーのリーグ戦でチームの順位を計算する際、 例えば、勝ち点→得失点差→総得点数という優先順 位でランクを表示したいです。が、エクセルの関数 式を教えていただけませんか。 上位優先条件で同 ランクが発生したときの式がわかりません。 以下のような順位をつけたいです。 チーム 勝ち点 得失差 総得点 順位   A   6  +5   8   1  B   6  +3   5   2  C   1  -4   2   3  D   1  -4   0   4 よろしくお願いします。