ほっぷ、すてっぷ、数える

公開日:

注意

本記事は情報提供を目的としており、本記事の内容は無保証、サポートの対象外です。
サポート窓口、問合せ窓口にご質問をいただいても対応いたしかねますのでご了承ください。

はじめに

こんにちは、サポートの沖です。

今年ももうすぐ終わりですね。早いなー。毎月、色々なブログを書いてきたのですがいかがだったでしょうか?

玄人向けの内容が多かったと思いますので、最後はシンプルに行きたいと思います。「数える」というケースについてのよくありそうな話ですので、ゆるゆると進めていきましょう。

文字数を判定するよ

文字列フィールドの設定で「文字数 (整数で指定)」の最小と最大があるので、入力できる文字数を指定することができます。ただ、文字列複数行の場合は指定できません。

カスタマインの場合は「文字数をチェックする」でチェック可能です。この「やること」の場合は以下のフィールドタイプをチェック可能です。

  • 文字列(1行)
  • 文字列(複数行)
  • リッチエディター
  • リンク

レコードを保存する直前(削除時は除く)」に文字数をチェックして上限を超えていたら保存をキャンセルとかも可能ですね。

文字数を数えてみよう

文字数を数える「やること」は無いのですが、「count 関数」で数えることが可能です。関数なので比較値やマッピングなどで使用もできますし、「if 関数」などの判定に使ったりもできます。なお、「count 関数」のドキュメントには以下のような説明があります。

文字列の文字数を返す場合、全角文字や絵文字も1文字とカウントします。
JavaScript の .length と似ていますが、JavaScript の .length は絵文字を2文字とカウントする点が異なります。どちらかというと Python の len 関数に近い動きになります。

書いていることは難しそうですが、見たままの文字数だと思えば大丈夫です。

バイト数を数えてみよう

昔は、半角英数は1バイトで全角は2バイトだとか、JISやシフトJISとか外字とかありましたよね。ishでシフトJISだとサイズ小さくなるとか(なにそれ

文字列のバイト数を計算する」を使うと、文字数ではなくバイト数を計算できます。問題は、最近の文字は絵文字とか𠮷(つちよし)のように昔のような2バイトではない文字が増えていることです。なので計算結果の数値を見ると腑に落ちない時もあると思うのですが、そういう時代なんだなと納得していただくのが良いのかもです。(なにそれx2

改行は数えられる?

はい、以下のページのように「複数行文字列を1行に変換する」を使用することでカウント可能です。

文字列(複数行)の行数をカウント・制限する

改行は1文字としてカウントされることを利用しているので、応用できそうなテクニックですね。

取得したレコードを数えてみよう

何かの「やること」でレコードを取得していて、その数を数える場合は「レコード行数をカウントする」を使います。もし1つの特定の値のレコード数ということなら「レコード中の条件に合う行数をカウントする」でカウントが可能ですし、複数フィールドの特定の値であれば「取得したレコードを絞り込む」で必要回数だけ絞り込んだ後にカウントという設定も可能です。

チェックボックスでチェックした数を数えてみよう

編集画面や詳細画面なら1つのフィールドの選択項目を「count 関数」でカウントできます。フィールドが複数の場合はそれぞれを加算してください。

もし、チェックボックスがテーブルにある、ということなら「テーブル中のフィールド選択数をカウントする」でカウント可能です。この1つの「やること」で実現できるので便利ですね。

取得したレコード内のチェックボックスでチェックした数を数えてみよう

もし、詳細画面のような1レコードではなく、アンケート結果のような他の複数レコード内のチェックボックスが対象ということなら「レコード内の条件に合う行のフィールド選択数をカウントする」があります。

更には、取得した複数レコード内のテーブルにあるチェックボックスならば「他のレコード内のテーブルをレコードとして取得する」で一旦レコードにしておくと、先ほどの「レコード内の条件に合う行のフィールド選択数をカウントする」が使えます。

このように対象を「レコード」として取得すると出来ることが増えるので、覚えておくと便利です。

なお、集計方法は色々とあるので、詳しくはドキュメントのページをご確認ください。

https://docs-customine.gusuku.io/ja/actions/aggregate

ユーザー選択の選択数を数えてみよう

ユーザー選択や組織選択は複数選択が可能なタイプのフィールドなので、チェックボックスと考え方は同じです。ですので、上記のカウント方法は同じように設定できます。

取得したレコード内のユーザー選択数を数えてみよう

ユーザー選択や組織選択は複数選択が(以下略

時間を数えてみよう

編集画面のような1レコード内の時刻や日時であれば、計算フィールドで計算可能です。計算結果を数値ではなく時刻表記にすることも可能なので、よく使われている機能だと思います。

編集画面であればテーブル内の時刻でも計算フィールドで合計可能なので、これもよく使われていると思います。計算フィールドはかなり便利に使えるフィールドなんですよね。

取得したレコード内の時間を数えてみよう

編集画面であればkintoneが計算フィールドでうまく計算してくれるのですが、取得したレコードの場合は時刻表示は文字列扱いなので計算することができません。このような場合は表示用のフィールドとは別に計算用のフィールドを追加しておくと計算可能です。以下のブログもご確認ください。

最後に

最後はひたすら文字だけのブログになりました。色々な数え方があったり、文字の切り出しのように切り出す文字数を可変にしたりという派生パターンがあったりと、数えることが出来ると実現できる動きも増えます。

是非、関数も組み合わせてカウントをお楽しみください。

投稿者プロフィール

アバター画像
"サイボウズ公認kintoneエバンジェリスト
カスタマインやデプロイットでも色々とやってます"