| パスワード:[kiri]
桐を使いだした当初(Ver3です)は項目計算式を多用していましたが、後々のメンテナンスが大変なので可能な限り一括で処理していました。
今回のケースは、順位付けの項目数が5つであり、コピー・貼り付けと項目名の変更を間違わなければ一括より項目計算式の方が手っ取り早く作成できます。 これ以上、評価すべき項目数が増えるのであれば、自分なら迷わず一括です。
さて、[英語]〜[強み_社会]までのデータ型は整数とします。ファイル属性[未定義項目値処理]は未定義を選択し、0点と点数が記録されていない(その科目の試験を受けていない)場合とを区別します。
[強み_英語]の項目計算式は下記の通りです。わかりにくいので、メモ帳などに貼りつけて眺めてください。
#cond([英語]=#U,=#U,1,1+#cond([数学]=#U,0,[数学]>[英語],1,1,0)+#cond([国語]=#U,0,[国語]>[英語],1,1,0)+#cond([理科]=#U,0,[理科]>[英語],1,1,0)+#cond([社会]=#U,0,[社会]>[英語],1,1,0))
以下、参考までに数学から社会までの項目計算式です。 数学: #cond([数学]=#U,=#U,1,1+#cond([英語]=#U,0,[英語]>[数学],1,1,0)+#cond([国語]=#U,0,[国語]>[数学],1,1,0)+#cond([理科]=#U,0,[理科]>[数学],1,1,0)+#cond([社会]=#U,0,[社会]>[数学],1,1,0))
国語: #cond([国語]=#U,=#U,1,1+#cond([数学]=#U,0,[数学]>[国語],1,1,0)+#cond([英語]=#U,0,[英語]>[国語],1,1,0)+#cond([理科]=#U,0,[理科]>[国語],1,1,0)+#cond([社会]=#U,0,[社会]>[国語],1,1,0))
理科: #cond([理科]=#U,=#U,1,1+#cond([数学]=#U,0,[数学]>[理科],1,1,0)+#cond([国語]=#U,0,[国語]>[理科],1,1,0)+#cond([英語]=#U,0,[英語]>[理科],1,1,0)+#cond([社会]=#U,0,[社会]>[理科],1,1,0))
社会: #cond([社会]=#U,=#U,1,1+#cond([数学]=#U,0,[数学]>[社会],1,1,0)+#cond([国語]=#U,0,[国語]>[社会],1,1,0)+#cond([理科]=#U,0,[理科]>[社会],1,1,0)+#cond([英語]=#U,0,[英語]>[社会],1,1,0))
順位付けは大きい(小さい)ものから順に並べる作業ですが、順位を付けられる各アイテムの視点からは、自分より大きい(小さい)ものが何個あるかをカウントしていることになります。ただし、この項目計算式では、神奈川二郎の様に同一順位が複数ある場合、つまり、1位が2教科ある場合、その次は2位ではなく、3位として出力されますのであしからず。これは桐の置換で用いる[#順位]の仕様と同じです。もし、1位の次は2位にしたいとうニーズが強いのであれば、やはり一括を組むことになりそうです。 |