データを考えるのに必要な論理構造

公開日:2024-05-23

kintoneのデータ操作では論理構造の考え方が必要になります。このコラムでは、論理構造の考え方の基礎についてご紹介します。

このコラムは、弊社のYouTubeチャンネルで公開している次の動画の解説記事となります。

まず動画をみていただいてから、理解の定着のためにこのコラムを読んでいただくことをおススメします。

ゴール設定

このコラムでは以下の2点をゴールとします。

  • kintoneでのカスタマイズやデータ取得に必要な論理構造の考え方の基礎を学ぶ
  • ANDとORを使いこなせるようになって自由にデータ取得できるようになる

注意点として、このコラムではkintoneの利用を前提としています。また、情報工学を専門にしていない方に向けて、できるだけ簡単に論理式について解説することを目的としています。厳密な理論とは異なる説明を含んでいますので、ご承知おきください。

ANDとORのみの説明となっており、XORやNORなどその他の理論には触れません。

ANDとORとは

kintoneの論理式は、基本的にすべてANDとORで説明できる必要があります。
kintoneのカスタマイズを動かす場合の条件や、kintoneのデータを取得する場合の条件など、すべてANDとORを組み合わせて表現できなくてはなりません。
知っている方が多いと思いますが、ANDとORはそれぞれ以下のようになっています。

  • AND
    両方が満たされたときに「真」となる
  • OR
    どちらか一方が満たされたときに「真」となる、両方満たされていてもOK

ベン図

文字だけで見るより図を見た方がイメージしやすいので、見てみましょう。情報工学の専門の言葉で「ベン図」と言います。
それぞれの図の◯Aと◯Bがデータの集まりを表しています。

  • A AND B:AとBが両方満たされたときに「真」となる
    AとBが重なっている中央の赤い部分を表します。
  • A OR B:どちらか一方が満たされたときと、両方満たされているときに「真」となる
    Aのみでも、Bのみでも、重なっていてもOKなため、塗りつぶした赤い範囲を表します。

複雑なケース

もう少し複雑なケースを考えていきましょう。以下のケースです。

  • A AND B AND (C OR D) 

順番に考えていきます。

  • A AND B:AとBが重なっている中央の黄色の部分を表します。

次に()があるので、 (C OR D) を考えます。

  • C OR D:Cのみでも、Dのみでも、重なっていてもOKなため、塗りつぶした緑の範囲を表します。

最後にA AND B AND (C OR D) は、A AND Bと (C OR D) が重なっている部分を示します。
黄色と緑が重なる部分である、赤い範囲を示していることになります。

kintoneで考える

A、B等で考えてきましたが、実際にkintoneでどのように考えていくのか、例を見ていきましょう。
案件管理のアプリを例に挙げながら、考えるときのコツ2点をご紹介します。

  • 一度にすべてを考えようとしない
  • A AND B もしくは A OR B のセット1つずつで考えていって徐々に複雑にしていく

ベン図を作成する

以下の例で考えていきます。

  • 確度 = “A” AND 案件発生日 = THIS_MONTH() AND (商品 in (“kintone”, “Garoon”))

これは分解すると以下の3つの条件の組み合わせと言えます。

  • 確度がA
  • 案件発生日が今月
  • 商品がkintoneまたはGaroonを満たしているもの
    • (商品 in (“kintone”, “Garoon”)) の「in」は、商品=kintoneまたは商品=Garoon

一見すると複雑な式ですが、「考えるときのコツ」に従って1つずつ順番に考えていきます。まずは(商品 in (“kintone”, “Garoon”))の部分です。
下の図は「kintone」「Office」「Mailwise」「Garoon」の4つの商品が存在する中から、「商品がkintoneまたはGaroon」という式を示したもので、この図中では左上と右下のオレンジの部分が該当します。

次に、確度=Aを追加して考えてみます。
商品がkintoneかGaroonで、確度がAであるオレンジの部分が該当しました。

最後に、案件発生日=今月を考えてみます。
商品がkintoneかGaroonで、確度がA、案件発生日が今月は、赤い部分が該当しました!

このように、一見複雑に見えても順番に整理して考えることが大切です。

実際のkintoneの画面

kintoneの画面で見てみましょう。
絞り込みをする場合にも、順番に絞り込んでいきます。

まず、製品名はkintoneかGaroonで絞り込みます。

次に、追加で確度=Aを絞り込みます。

ポイントは、下部の「すべての条件を満たす」を選択している点です。製品名の条件と確度の条件が「AND」であることを示しています。

最後に、「案件発生日が今月」ですが、例として2018年9月で絞り込みたいとします。
2018年9月1日以降と、2018年9月30日以前を追加します。

これで、すべての絞り込みが完了しました。
一覧画面を確認していきます。

製品名はkintoneかGaroonで、確度はA、案件発生日が2018年9月のレコードのみを絞り込むことができています!
kintoneで絞り込む場合にも、段階を踏んで順番に絞り込みを設定していくことで、間違いなく狙ったデータを取得することが可能となります。

カスタマインで取得する場合

カスタマインで同じようにレコードを絞り込み、取得する方法をご紹介します。
この場合、「条件を組み立ててレコードを取得する」というやることを使用します。

このやることのパラメータの「検索条件」を押すと、kintoneの絞り込みと似た「条件ビルダー」という画面が出てきます。kintoneで見た時と同様の条件で進めていきます。
製品名がkintoneまたはGaroon、確度がA、案件発生日が2018年9月を入力します。

このように条件を入力しました。検索条件には設定に合わせて自動的に式が入力されています。

これだけでなく、カスタマインにはさらに便利な機能があります。
条件ビルダーの左下にある、「グループ追加」をクリックするとグループという枠が出てきます。右上の3点リーダー(縦)から、条件1~4をグループに追加してみます。

グループに追加すると、条件の1~4が大きな枠で囲まれた状態になります。さらにグループを追加し、新たな条件を追加することが可能です!

例として、追加したグループ「グループ2」に確度はB、製品名はMailwaseという条件を追加してみます。さらに、右上の「全ての条件を満たす」から「いずれかの条件を満たす」に変更してみましょう。

この設定をすることで、「kintoneかGaroonかつ、確度がAかつ、案件発生日が2018年9月のもの」か、「確度がBかつ、製品がMailwaseのもの」で絞り込むことができます。
設定画面上では全て見えないほどの長い式が入力されていますが、この式を理解する必要はありません。kintone の絞り込みと同じような手順で複雑な条件設定ができました。

このように、kintoneのクエリも画面(GUI)で組み立てられるようになっています。1つずつ条件を追加しながら絞り込んでいくことで、綺麗な条件を作っていくことが可能です。

まとめ

最後に、ポイントは3点です。

  • 論理構造・計算はなれないと難しいが、少しずつ考えればそれほど難しくない
  • kintoneではこれを理解することで自在にデータ操作ができるようになる
  • gusuku Customineで条件ビルダーを使えば簡単に組立てることも可能

論理構造・計算は慣れないと難しく感じます。一足飛びに答えを得ようとせずに、少しずつ、1つずつ順番に考えることがとても大切です。

また、kintoneの一覧画面の絞り込みでは複雑な条件式は表現できません。gusuku Customineの条件ビルダーを利用することで、より複雑な条件を作ることが可能です。
より難しいデータや複雑なデータを取得する必要があるという方は、gusuku Customineもぜひご活用ください。

論理構造・計算をしっかり理解することで、kintoneをさらに便利に使えるので、このコラム・動画を参考にしてみてください。