採点に伴うエクセル処理・PDF処理などについてのメモ

半年に1回のどうやるんだっけ備忘録。汎用性があるのかないのかわからないけど一応公開しておく。

多数のWordファイルをPDFに変換する

ワードカウントを使いたいので学生にはdocxで提出させたいが、自分が読むのはpdfで読んで、問題があったときだけWordファイルを確認したい。このような時に多数のWordファイルを一括してPDFに変換したいが、Acrobatを使ってもむちゃくちゃ遅い。

PDFへの変換は、Pythonにdocx2pdfというライブラリがある。むちゃはやいわけではないが、バックグラウンドでやってくれるのでよい。CPUのみ占有される。

  1. PCに直でPythonを入れておく
  2. 該当フォルダでcmdを立ち上げる
  3. docx2pdf “./” でそのフォルダの中を全部pdf化。

PDFの結合も、200ファイルを結合とかやろうとするとAcrobat Pro DCはとても遅い。PythonだとPyPDF2というのがあるがちょっとスクリプトを書かないといけないので面倒。結局サブPCに入れているいきなりPDFを使った。

重複した提出を除外する

同じ課題が重複して提出されている時に重複して加点しないようにしたい。
例えば、コメントの一覧からピボットテーブル等でコメント提出回数を集計したとき、

第1回第2回第3回
121

上記のように、第2回の課題を2回だしている(提出しなおしている)学生がいるようなケース。やり方はいろいろあると思うが、0が入力されていない状態ならCOUNT等で数値の入力されているセルの数を数える、IFで1以上のときに1を返してそれを足しあわせる、など。

条件づき書式でエラーを探す

  • ちょっとした採点支援をさせるのにセルの色づけを使うと便利
  • docxで提出しろと言っているのにそれ以外のフォーマットであるとき、提出ファイル一覧のテキストからdocxの含まれていない行やセルを探す。
  • 記述式の問題で、当然含まれているはずの専門用語で色分けして、書かれていないセルを優先的に採点する
  • ちゃんと処理したい時は別の列に関数でCOUNTIF(A1, “*文字列*”,0)とかする。*はワイルドカード

素点をABC評価に直す

0-100までの数字列を用意し、右側に対応する評価をABCを入力して、その対応表を使ってVLOOKUP。もっと洗練された方法がありそうだけど採点は得点集計にVLOOKUP多用するので結局いつもこれ。

60点が合格、59点以下が不合格なのは忘れないのだが、ここで1点ずらした分をどこで調整するのかをいつも忘れる。S(A+)を90-100の11点分にするのが一般的なようだ(自分の大学で確かめてください)。

0から始まる文字列

授業コードとかで0から始まるのに、excelが数値判定すると最初のゼロを消してしまう。文字列化すればよいので最初に’をつけてから’0123と書けば、文字列扱いしてくれる。まあこれはさすがに忘れないか。

タイトルとURLをコピーしました