Notionのデータベーステーブルでは、エクセルのように関数をいれて色々できる。
これを使って、文字数やword数をカウントしたい。
単純な文字数は、以下でカウントできる。※”TEXT”はカウントしたいプロパティ列名
length(TEXT)
これが英文などで「word数のカウント」をしたい場合だと一工夫いるようだ。
例えば、
“My name is Taro” = 4
“Hello, world” = 2
などとしたいとき。
結論的には、以下を関数フィールドに入力するとできる。※”TEXT”はカウントしたいプロパティ列名
if(length(TEXT) > 0, length(replaceAll(replaceAll(replaceAll(TEXT, " +$", ""), " +", " "), "[^ ]", ""))+1, 0)
何をやっているかというと、基本的には”スペース”以外の文字を消して、スペースの数を数えている。
wordとwordの間にはスペースがあるので、このスペースを数えればword数がわかるという仕組み。
その際に、不必要に入ってしまっている余計なスペースを消したり、文頭のword(スペースがない)分を足したりと、以下を順番にやっている。
replaceAll(TEXT, " +$", "") // 文末にスペースがはいってしまっていたら削除
replaceAll(TEXT, " +", " ") // スペースが2つ以上続いてしまっていたら1つにする
replaceAll(TEXT, "[^ ]", "") // スペース以外を削除
length(TEXT)+1 // 残されたスペースの文字数をカウントして、文頭の1単語分を足す。
if(length(TEXT) > 0, length(TEXT)+1, 0) // セルに何も入力されていなかったら0にする。
ここでカバーできていないイレギュラーなケースがあった場合も、条件を追加して対応していくと精度をあげることができる。
以上。