OpenOfficeで頭文字に基づいてグループ分けを行なう

またまた、せこいお話で大変失礼いたします。
前回は、営業1課、営業2課・・・・営業10課という文字列に基づいてグループ分けを行なう方法を紹介しました。

今回は、英文字で書かれた名前を、そのイニシャルに基づいて4つにグループ分けする方法を紹介します。
イニシャルによって下のように分けようというものです。
A-G:1グループ
G-N:2グループ
O-U:3グループ
V-Z:4グループ

ここで使う関数はCODE関数です。
CODE関数では、=CODE("A")で65を返します。
このことを利用して、Aのときに1が返されるように64を引きます。

=ROUNDUP(CODE(PROPER(A2))-64)/7)

全てが大文字で書かれていることが分かっていれば、
CODE(A2)でも良いのですが、小文字で始まる場合があることも考慮に入れるなら、上のようにします。



赤文字の部分で先頭文字の文字コードが返るので、最初に書いたようにこの値から64を引きます。
すると、
Aのとき:=CODE("A")-64=1
Bのとき:=CODE("B")-64=2
Fのとき:=CODE("F")-64=6
Gのとき:=CODE("G")-64=7
のようになるので、この値を7で割り、小数点以下を切り上げます。

Aのとき:=ROUNDUP(CODE("A")-64)/7)=1 (65-64)7=0.142 を切り上げて1
Bのとき:=ROUNDUP(CODE("B")-64)/7)=1 (66-64)7=0.285 を切り上げて1  
Fのとき:=ROUNDUP(CODE("F")-64)/7)=1 (70-64)7=0.428 を切り上げて1
Gのとき:=ROUNDUP(CODE("G")-64)/7)=1 (71-64)7=1.000 を切り上げて1
Hのとき:=ROUNDUP(CODE("H")-64)/7)=2 (72-64)7=1.142 を切り上げて3
Sのとき:=ROUNDUP(CODE("S")-64)/7)=3 (83-64)7=2.714 を切り上げて3
Zのとき:=ROUNDUP(CODE("G")-64)/7)=4 (90-64)7=3.714 を切り上げて4

こんな感じです。



ここでなぜ7で割るかということですが、アルファベットは全部で26個あります。
26種類を4つに分けたいので、26を4で割ると、6,5、つまり、6と余りということになります。
で、7で割るということです。
送信者 OpenOffice
このファイルはSKYDRIVEからcalc156.odsをダウンロードしてください。



関数名:CODE関数
書式:=CODE(文字列または対象セル)
何ができる:文字列の先頭文字の文字コードを返す
平たく書くと:=CODE("HELLO") でHのコード72が返ります。

関数名:PROPER関数
書式:=PROPER(文字列または対象セル)
何ができる:文字列の先頭文字を大文字に変換し、続く文字を小文字にします。
平たく書くと:=PROPER("hEllo") でHelloが返ります。

関数名:ROUNDUP関数
書式:=ROUNDUP(数値または対象セル;処理桁)
何ができる:数値を処理桁で切り上げ処理を行ないます。 処理桁を省略すると、小数点以下を切り上げます。
平たく書くと:=ROUNDUP(0.123) で1が返ります。
この記事をクリップ!