はじめに
これまでのレッスンで、自動化の基本要素とフローチャートを学びました。
今回は、自動化の「血液」ともいえるデータの流れについて学びます。
複数のツール間でデータをコピペしている...そんな経験はありませんか?
実は、このコピペこそが自動化で最も効果的に削減できる作業なんです!
データの流れを川に例えると
データフローは川の流れ
データの流れを理解する最も簡単な方法は、川の流れに例えることです。
【山(データの源)】
↓ 湧き水
【川(データの流れ)】
↓ 流れる
【海(データの行き先)】
実際のデータフロー:
【入力元(フォーム)】
↓ データ発生
【処理(自動化)】
↓ 加工・変換
【出力先(データベース)】
支流の合流 = データの統合
支流A ──┐
├─→ 本流 → 海
支流B ──┘
データA(売上)──┐
├─→ 統合レポート
データB(在庫)──┘
入力(Input):データはどこから来る?
入力の種類と特徴
1. 人間からの入力
例:
- Webフォームの入力
- メールの本文
- チャットメッセージ
- 音声入力
- 手書き文字(OCR)
特徴:
- 形式がバラバラ
- ミスや曖昧さがある
- リアルタイムで発生
2. システムからの入力
例:
- データベースの情報
- APIからのデータ
- センサーの測定値
- ファイルの内容
- 他システムの出力
特徴:
- 形式が統一されている
- 正確性が高い
- 大量データも可能
3. 時間による入力
例:
- スケジュール(毎朝9時)
- カレンダー(月末)
- タイマー(30分ごと)
特徴:
- 予測可能
- 定期的
- トリガーとして使いやすい
実例:お問い合わせフォーム
【入力データ】
- 名前:山田太郎
- メール:yamada@example.com
- 件名:料金について
- 内容:月額プランの詳細を...
【データの形式】
{
"name": "山田太郎",
"email": "yamada@example.com",
"subject": "料金について",
"message": "月額プランの詳細を..."
}
入力データの課題
- 形式の不統一(全角/半角、表記ゆれ)
- 必須項目の漏れ
- 想定外のデータ(特殊文字など)
- データ量の変動
処理(Process):データの加工・変換
なぜ処理が必要?
入力されたデータは、そのままでは使えないことがほとんどです。
例:電話番号の形式統一
入力される形式(バラバラ):
- 090-1234-5678
- 09012345678
- 090 1234 5678
- 090-1234-5678(全角)
統一後:
- 09012345678(半角数字のみ)
よくある処理パターン
1. 形式変換
例:日付の変換
入力:2024年1月15日
↓
処理:形式を統一
↓
出力:2024-01-15
例:名前の分割
入力:山田太郎
↓
処理:姓と名に分割
↓
出力:姓=山田、名=太郎
2. 計算・集計
例:消費税計算
入力:商品価格 1,000円
↓
処理:税率10%を計算
↓
出力:税込価格 1,100円
例:合計計算
入力:[100, 200, 300]
↓
処理:すべて足す
↓
出力:600
3. 判定・分類
例:優先度判定
入力:件名「緊急」
↓
処理:キーワードチェック
↓
出力:priority = "high"
例:カテゴリ分類
入力:「パソコンが起動しない」
↓
処理:キーワード分析
↓
出力:category = "技術サポート"
4. 結合・分割
例:データ結合
入力A:顧客名
入力B:注文情報
↓
処理:IDで結合
↓
出力:顧客名付き注文データ
例:テキスト分割
入力:「東京都,渋谷区,道玄坂」
↓
処理:カンマで分割
↓
出力:["東京都", "渋谷区", "道玄坂"]
出力(Output):データはどこへ行く?
出力先の種類
1. 人間への出力
例:
- メール送信
- Slack/LINE通知
- レポート生成(PDF)
- ダッシュボード表示
- 音声アナウンス
使用場面:
- 完了通知
- エラー通知
- 定期レポート
- リアルタイムアラート
2. システムへの出力
例:
- データベース保存
- スプレッドシート記録
- API送信
- ファイル作成
- 他システム連携
使用場面:
- データ保管
- 履歴記録
- 次工程への引き渡し
- バックアップ
3. 次の処理への出力
例:
- 別の自動化のトリガー
- 条件判定の材料
- ループ処理の入力
使用場面:
- 多段階処理
- 複雑なワークフロー
- エラー時の再処理
実例:顧客データの流れ
【入力】Webフォーム
↓
お名前:山田太郎
メール:yamada@example.com
↓
【処理】データ整形
↓
- メールを小文字に統一
- 名前の前後の空白を削除
- 登録日時を追加
↓
【出力1】データベース
↓
顧客テーブルに保存
↓
【出力2】メール
↓
ウェルカムメール送信
↓
【出力3】Slack
↓
営業チームに通知
データフローの設計手法
ステップ1:入力を明確にする
質問リスト:
□ データはどこから来る?
□ どんな形式?
□ どのくらいの頻度?
□ データ量は?
□ エラーの可能性は?
ステップ2:必要な出力を定義
質問リスト:
□ 最終的に何が欲しい?
□ 誰が使う?
□ どんな形式が必要?
□ いつまでに必要?
□ 保存期間は?
ステップ3:処理を設計
入力 → [どんな変換が必要?] → 出力
例:
CSVファイル → [集計・グラフ化] → 月次レポート
実践例:売上日報の自動化
【現状分析】
入力:各店舗からのメール(バラバラな形式)
出力:統一された日報(Excel)
【設計】
1. 入力の統一
- メールテンプレートを作成
- 必須項目を明確化
2. 処理の定義
- メールから数値を抽出
- 店舗ごとに集計
- 前日比を計算
3. 出力の設定
- Excelファイルに自動記入
- グラフを自動更新
- 完了通知をSlackに
データフロー設計のコツ
- シンプルに始める(最小限の処理から)
- エラー処理を忘れない
- データの検証を入れる
- ログを残す(後で確認できるように)
よくあるデータフローパターン
パターン1:収集→統合→配信
データA ─┐
データB ─┼→ [統合処理] → レポート配信
データC ─┘
例:
売上データ ─┐
在庫データ ─┼→ [統合] → 経営ダッシュボード
顧客データ ─┘
パターン2:分岐→並列処理
入力データ → [分類] → Aタイプ → 処理A → 出力A
→ Bタイプ → 処理B → 出力B
→ Cタイプ → 処理C → 出力C
例:
問い合わせ → [内容判定] → 技術 → IT部門 → 技術的回答
→ 料金 → 営業部門 → 料金説明
→ その他 → 総務部門 → 一般回答
パターン3:検証→処理→通知
入力 → [検証] → OK → [メイン処理] → [成功通知]
→ NG → [エラー処理] → [エラー通知]
例:
注文データ → [在庫確認] → あり → [出荷処理] → [発送通知]
→ なし → [欠品処理] → [お詫びメール]
パターン4:定期収集→差分処理
[定期実行] → [データ取得] → [前回との比較] → [差分のみ処理] → [更新通知]
例:
毎時実行 → 在庫確認 → 前回から変化 → 変化分のみ更新 → 在庫アラート
データ形式の基礎知識
よく使われるデータ形式
1. CSV(カンマ区切り)
名前,年齢,部署
山田太郎,30,営業部
鈴木花子,25,総務部
特徴:シンプル、Excelで開ける
2. JSON(JavaScript Object Notation)
{
"name": "山田太郎",
"age": 30,
"department": "営業部"
}
特徴:構造的、APIでよく使用
3. テキスト/プレーンテキスト
これは単純なテキストです。
構造はありません。
特徴:最もシンプル、加工が必要
4. 表形式(スプレッドシート)
| A列 | B列 | C列 |
|--------|------|--------|
| 名前 | 年齢 | 部署 |
| 山田太郎| 30 | 営業部 |
特徴:見やすい、計算しやすい
トラブルシューティング
よくある問題と対策
問題1:文字化け
原因:文字コードの不一致
対策:UTF-8に統一する
問題2:データの欠損
原因:必須項目の未入力
対策:入力時のチェック強化
問題3:形式エラー
原因:想定外のデータ形式
対策:変換処理を追加
問題4:処理の遅延
原因:データ量が多すぎる
対策:分割処理、非同期処理
今日のまとめ
データフローの要点
- 入力:データの発生源を明確に
- 処理:必要な変換・加工を定義
- 出力:最終的な行き先を決める
- データは川のように流れる
- 形式の統一が成功の鍵
次回予告
次のレッスンでは、「条件分岐:『もし〜なら』で賢い自動化」を学びます。
- 単純な条件分岐
- 複数条件の組み合わせ
- 条件分岐の実践パターン
- エラー処理との組み合わせ
データフローに条件分岐を加えることで、より賢い自動化が作れるようになります!
チャレンジ問題
問題1:データフローを読み解く
以下のフローは何を自動化していますか?
メール受信 → 添付ファイル抽出 → CSV読み込み →
データ集計 → グラフ作成 → PDFレポート →
メール送信
答えを見る
売上レポートの自動作成
- 各支店からメールで売上データ(CSV)を受信
- 添付されたCSVファイルを抽出
- データを読み込んで集計
- グラフを自動作成
- PDFレポートとして出力
- 関係者にメール配信
毎日の売上集計作業を完全自動化している例です。
問題2:処理を設計しよう
以下の入力を、指定された出力に変換する処理を考えてください。
入力:2024/1/9(様々な形式で入力される)
出力:2024-01-09(統一形式)
他の入力例:
- 2024-1-9
- 2024年1月9日
- 24/1/9
- R6.1.9
答えの例
処理手順:
- 年号を西暦に統一(令和→西暦変換)
- 区切り文字を統一(/、年月日、. → -)
- 2桁表記に統一(1月 → 01月)
- 4桁年表記に統一(24 → 2024)
処理の流れ:
入力 → 年号チェック → 区切り文字変換 →
ゼロパディング → 形式統一 → 出力
問題3:エラーを想定しよう
「フォーム入力 → メール送信」という単純な自動化で、起こりうるエラーを3つ挙げ、対策を考えてください。
答えの例
エラー1:メールアドレスの形式エラー
- 対策:送信前に形式チェック(@の有無など)
エラー2:メールサーバーの応答なし
- 対策:タイムアウト設定、再送信機能
エラー3:必須項目の未入力
- 対策:送信前の入力チェック、エラーメッセージ表示
追加の対策:
- すべてのエラーをログに記録
- 管理者への通知機能
- ユーザーへの分かりやすいエラー表示
データの流れを理解することで、自動化の可能性が大きく広がります。次回もお楽しみに!