OpenOfficeでメンバーの入脱退状況を管理する

下の表は、割とメンバーの出入りが激しい(?)サークルの入会・脱退を管理する表です。

送信者 OpenOffice
この画像のサンプルファイルは、SKYDRIVEからcalc106.odsをダウンロードしてください。
A列にアクションが合った日付を入力します。
B列には名前を入力します。
C列に1が入を入れたら入会、0を入れたら脱退と認識するように設定します(入会・脱退と書いてもいいのですが、手数を減らすため)。
D列には、その日付の時点で入会しているメンバーの名前を表示します。
E列には、その日付の時点で入会しているメンバーの数を表示します。
D列の3行目に入力されている数式は、=IF(C3=1;D2&" "&B3&" ";IF(C3=0;SUBSTITUTE(D2;" "&B3&" ";"")))
入会のとき:C3セルの値が1のとき、D2の値(1行上の時点)の後に、前後を空白ではさんだB3セルの値を結び付けます。
脱退のとき:C3セルの値が0のとき、D2の値(1行上の時点)から、前後を空白ではさんだB3セルの値を削除します。
削除するためには、SUBSTITUTE関数を使います。
関数名:SUBSTITUTE関数
書式:=SUBSTITUTE(処理対象の文字列またはセル;変換対象の文字列;変換後の文字列)
何ができる:処理対象の文字列から、変換対象の文字列を検索して変換後の文字列に置換する
平たく書くと:=SUBSTITUTE("121223";"2";"A") 2がAに置換されてこれで1A1AA3が返されます。

前後を空白ではさむのは、以下の理由によります。

  • eikoを削除するとき、Seikoを削除してしまう誤りを防ぐため
  • 森を削除するとき、大森を削除してしまう誤りを防ぐため

最後に、最新の状況でのメンバーの人数を数える数式です。
=COUNTA($C$2:C21)-COUNTIF($C$2:C21;0)*2
COUNTA関数でC列の空白でないセルの数を数え、COUNTIF関数で0の数を数えて2倍して返される数を引きます
2倍するのは、脱退するためには必ず入会のアクションが発生しているのでそのセルの数も引くためです。
同様に、それぞれの日付の時点でのメンバーの数は、=COUNTA($C$2:C5)-COUNTIF($C$2:C5;0)*2で得られます(C5セルの時点)。

この記事をクリップ!