Tap Forms 5で、レコードをランダムに並び替える方法!おまけに、特定のレコード数を抜き出すやり方もご紹介!
Tap Formsなどのデータベースでは、特殊な事例かもしれませんが、レコードをランダムに並べたい時の方法です。
ランダム関数を使用して、ランダム値を出して、それを昇順もしくは降順に設定することでレコードをランダムに並び替えます。
計算フィールドでランダム関数を使用する
まず、計算フィールドを作成します。
「+」をクリックして、新規フィールドを作成します。
テキストフィールドになっているので、フィールドタイプを変更します。
表示されたリストから、[計算]を選択します。
計算フィールドに変更されたら、フィールド名をここでは、[ランダム]と入力します。
設定画面をスクロールしていき、関数編集設定画面までスクロールします。
そして、[編集]ボタンをクリックします。
関数編集画面が表示されます。
①右の関数一覧から、「数学と三角関数」の中にある[RND()]を選択します。
②「<」追加ボタンをクリックします。
③中央に[RND()]が追加されました。そして、[保存]ボタンをクリックして、決定します。
ランダムフィールドに、小数点以下のランダムの数字が表示されました。
赤矢印の三角マークをクリックすることで、昇順・降順に並び替えることができます。
ランダム数値を昇順、もしくは降順に並び替えることで、レコードをランダムの順番に並び替えることができます。
ランダム値を更新する
一度作成したランダムの数値を新しくしたい場合、2通りの方法があります。
1.レコードリストのリフレッシュボタンをクリックする方法
マルチカラム表示の場合では、赤枠部分にあります。これをクリックします。
レコード全体がリフレッシュされ、計算フィールドが再計算され、ランダム値が新しい数値に変わります。
2.ランダムフィールドのみ再計算する方法
フィームインスペクターのフィールド設定画面で、ランダムフィールドを選択します。
その設定画面をスクロールし、関数設定の[編集]ボタンをクリックします。
ランダム関数が入力された関数設定画面が表示されます。
何もせず、[保存]ボタンをクリックします。これで、ランダムフィールドだけが再計算され、新しいランダム値が入力されます。
おまけ:ランダムに特定の数のレコードだけのデータを作る方法
例えば、ランダムに並び替えたレコードのうち、「本文」の文字数が「140字」以内のレコードを800レコードだけ抜き出したい場合。
上記の通り、ランダムに並び替えるところまではできました。しかし、Tap Formsでは、特定の数ぶんだけ抜き出す方法がありませんでした。
そこで、ランダムにした状態のcsvデータを書き出した上で、テキストエディターで800レコードのみ抜き出します。
右上にある[検索]ボタンをクリックします。検索画面が表示されます。
検索ルールの「+」をクリックして、条件を追加します。
今回は、文字数フィールドが「140」字以下のものだけを検索します。赤線の条件を変更するため、クリックします。
表示されたリストから、[より小さいか等しい]を選択し、[保存]ボタンをクリックします。
左のフォームリストの中に、検索したレコードが保存さています。
検索したレコードを選択した状態で、レコードを書き出します。
メニュー[ファイル]-[書き出す]-[レコードを取込み]を選択します。
日本語飜訳が間違っているのか、[取込み]となっていますが、そのまま進めてください。
レコードを書き出し設定画面が表示されます。
書き出し形式や設定、赤枠の書き出したいフィールドを設定し、[書き出す]ボタンをクリックします。(このあと、ファイル保存画面になります)
書き出したcsvファイルをテキストエディターに読み込みます。
1行1レコードになるので、行数を表示させて、800行だけ残して、あとは削除して、データの抜き出しができました。
まとめ
ランダムにレコードを並び替えたい場合は、ランダム関数を使用して、並び替えることが可能です。
また、複雑な条件でレコードを抜き出したい場合は、工程を何段階かに分けて、欲しいデータを抜き出しました。
Filemakerであれば、スクリプトを使うことで、複雑な条件で必要なレコードを検索できるのですが、Tap Formsではそれができませんので、工程を分けてレコードを抜き出してみました。