【入門者向け】FileMaker データクレンジング技まとめ

#この記事の目的
データ入力時にきれいなデータが入るようシステムで制御することも重要ですが、集めたデータを活用するために形を整えるスキルも必要です。
入門者向けに、データクレンジングで使えるFileMakerの機能・技をまとめました。

#データの形を整える
同じ形にそろえる、余計な文字列を取り除く・必要な文字列を抽出するなど、全置換機能とあわせて使いましょう。
####半角／全角を統一する
| 関数 | 用途 |
|:-:|:-:|
| RomanHankaku ( テキスト ) | 英数字を半角に  |
| RomanZenkaku ( テキスト ) | 英数字を全角に |
| KanaHankaku ( テキスト ) | かなを半角に |
| KanaZenkaku ( テキスト ) | かなを全角に |
下図はフィールド「会員番号」を英数字半角に全置換する場面。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/c9ce6d98-b152-039b-3cf7-c1db81dbbb6a.png)

####空白を取り除く
| 関数 | 用途 |
|:-:|:-:|
| TrimAll (テキスト ; 1 ; 3) | テキスト内のすべての空白を消す |
TrimAllの()内の数字の意味は、公式ヘルプを参照してください。上記の記述なら全部の空白を消すことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/b97abe5a-ee58-49d2-bbc2-a7b75c0e41d8.png)

####改行を取り除く
| 関数 | 用途 |
|:-:|:-:|
| Substitute ( テキスト ; "¶" ; "" ) | テキスト内の改行コードを消す |
| Substitute ( テキスト ; "¶" ; " " ) | テキスト内の改行コードを半角スペースに置換 |
例えば住所の番地と部屋番号など、内容を区切る意味で改行していることが多く、改行コードを単純に消してしまうと区切り位置が分からなくなる恐れがあります。「A町1-1 101号室」のように改行コードを半角スペースに置換するなど、実行前に注意しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/aaa29bd7-6d49-cd78-aa32-a67d3ea2e0c9.png)
####N行目だけ抽出する
| 関数 | 用途 |
|:-:|:-:|
| GetValue ( 値一覧 ; 値番号 ) | リストのN行目を取り出す |
上記に「値一覧」と記述されていますが改行区切りのテキストフィールド、また繰り返しフィールドも指定できます。
下図は改行を含むテキストフィールドを2行目の値で置換する場面。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/128b4177-e8eb-d281-2c17-03f62e70b1b4.png)
####数字だけ抽出する
| 関数 | 用途 |
|:-:|:-:|
| Filter ( フィルタするテキスト ; "0123456789" ) | テキストから数字だけ抽出する |
郵便番号や電話番号などからハイフンなど余計な文字を含まない、数字だけを取り出します。
電話番号の重複チェック等で便利。

#重複レコードを削除する
　会員マスタの会員番号など、本来重複するはずがないデータを精査する時に必要な技です。
　スクリプト・リレーション・インポート(更新)などの機能を使って重複レコードを抽出する方法があります。ナレッジが多いネタなので本記事では割愛します。
　※「FileMaker 重複」で検索するとたくさん出てきます。
　
#変なデータが残っていないか確認する
####索引一覧でチェック
| ショートカット | 用途 | OS |
|:-:|:-:|:-:|
| Ctrl+I | 索引一覧を開く | Win |

フィールドにカーソルを入れた状態で「Ctrl+I」で索引一覧を開くと、人間の目には同じに見えてもデータが異なる値があぶり出されます。例えば末尾にスペースが入っていたり、ハイフンがマイナスだったり…
例えば下図では、管理者メモに4種類の値が含まれていることがわかります。検索してイレギュラーをつぶしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/305232dd-ecc1-3a80-887c-46feeef1e146.png)
####重複値などの検索
別記事「<a href="https://qiita.com/Pepo_Yama/items/d56319f00f7f565a1a70">FileMaker入門　検索の基本的な方法</a>」を参照

#効率よく検索する
####前回と同じ検索条件で検索する
| ショートカット | 用途 | OS |
|:-:|:-:|:-:|
| Ctrl+R | 前回の検索条件を開く | Win |
似たような検索条件で、少し条件を変えて繰り返し検索する場合に便利。
※現在(2020/12/01)の公式ヘルプにこのショートカットキーが記載されていません。でも使えています。。
参考：<a href="https://help.claris.com/ja/pro-help/content/shortcuts-windows.html?Highlight=%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88">Claris FileMaker Pro 19 ヘルプ＞キーボードショートカット (Windows)</a>

####対象レコードの絞り込み
手順①　検索をかける
手順②　検索モードに切り替えて検索条件を入力
手順③　「対象レコードの絞り込み」を実行
→　①の対象レコードを、②で入力した検索条件でさらに絞り込むことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/dade3b39-652c-57aa-1407-adc8d4a2398a.png)
####対象レコードの拡大
手順①　検索をかける
手順②　検索モードに切り替えて検索条件を入力
手順③　「対象レコードの拡大」を実行（操作は上図参照）
→　①の対象レコードに、②で入力した検索条件の対象レコードが追加されます（対象レコードの拡大）。

#効率よくデータ置換する
####データビューアの活用
複雑な計算によりフィールド内容を全置換する場合、計算式の結果を事前にチェックすることができます。全置換はやり直せないので、データビューアで確認してから実行しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/13b6b1d7-601d-72da-9d20-9e872a63b1b2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/451c4016-5ea3-6213-52db-0eedbb183079.png)

####計算フィールドの索引機能を利用
レコードが多い場合、全置換より早くフィールド内容を計算結果で上書きできる場合があります。ただし、索引設定できない（関連テーブルの参照・集計フィールドを含む）計算では、この方法はできません。

（例）日付フィールドの値をyyyy/mm/ddに統一する場合：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/780d2cca-0d41-2819-df4a-12786fe3831b.png)
索引設定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/0580c46a-618c-9d6c-805e-0606da930f84.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/4bec8e16-95f3-c1a2-6171-a7ff70747a68.png)

日付形式に戻して置換完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316038/357f9666-72c2-3ef8-7cff-31d75e90b773.png)


#さいごに
別記事「<a href="https://qiita.com/Pepo_Yama/items/d56319f00f7f565a1a70">FileMaker入門　検索の基本的な方法</a>」と一緒に使うことで、ファイル自体の機能を作り込まなくてもデータ活用することが可能です。
データの取り扱いに慣れることで、実装したい機能のアイディアもまとめやすくなります。
非エンジニアの現場責任者などこれから学習する人にとて、FileMaker活用のヒントになれば幸いです。