メインコンテンツへスキップ
レッスン 5 / 12推定時間: 30

入力と出力:データの流れを理解する

自動化の本質は「データの流れ」です。どこからデータを受け取り(入力)、どう処理して、どこへ送るか(出力)。この流れを理解すれば、複数のツールやサービスを連携させる自動化も簡単に設計できるようになります。

はじめに

これまでのレッスンで、自動化の基本要素とフローチャートを学びました。

今回は、自動化の「血液」ともいえるデータの流れについて学びます。

複数のツール間でデータをコピペしている...そんな経験はありませんか?

実は、このコピペこそが自動化で最も効果的に削減できる作業なんです!

データの流れを川に例えると

データフローは川の流れ

データの流れを理解する最も簡単な方法は、川の流れに例えることです。

【山(データの源)】
    ↓ 湧き水
【川(データの流れ)】
    ↓ 流れる
【海(データの行き先)】

実際のデータフロー:

【入力元(フォーム)】
    ↓ データ発生
【処理(自動化)】
    ↓ 加工・変換
【出力先(データベース)】

支流の合流 = データの統合

支流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. 入力:データの発生源を明確に
  2. 処理:必要な変換・加工を定義
  3. 出力:最終的な行き先を決める
  4. データは川のように流れる
  5. 形式の統一が成功の鍵

次回予告

次のレッスンでは、「条件分岐:『もし〜なら』で賢い自動化」を学びます。

  • 単純な条件分岐
  • 複数条件の組み合わせ
  • 条件分岐の実践パターン
  • エラー処理との組み合わせ

データフローに条件分岐を加えることで、より賢い自動化が作れるようになります!

チャレンジ問題

問題1:データフローを読み解く

以下のフローは何を自動化していますか?

メール受信 → 添付ファイル抽出 → CSV読み込み → 
データ集計 → グラフ作成 → PDFレポート → 
メール送信
答えを見る

売上レポートの自動作成

  1. 各支店からメールで売上データ(CSV)を受信
  2. 添付されたCSVファイルを抽出
  3. データを読み込んで集計
  4. グラフを自動作成
  5. PDFレポートとして出力
  6. 関係者にメール配信

毎日の売上集計作業を完全自動化している例です。

問題2:処理を設計しよう

以下の入力を、指定された出力に変換する処理を考えてください。

入力:2024/1/9(様々な形式で入力される)
出力:2024-01-09(統一形式)

他の入力例:
- 2024-1-9
- 2024年1月9日
- 24/1/9
- R6.1.9
答えの例

処理手順

  1. 年号を西暦に統一(令和→西暦変換)
  2. 区切り文字を統一(/、年月日、. → -)
  3. 2桁表記に統一(1月 → 01月)
  4. 4桁年表記に統一(24 → 2024)

処理の流れ

入力 → 年号チェック → 区切り文字変換 → 
ゼロパディング → 形式統一 → 出力

問題3:エラーを想定しよう

「フォーム入力 → メール送信」という単純な自動化で、起こりうるエラーを3つ挙げ、対策を考えてください。

答えの例

エラー1:メールアドレスの形式エラー

  • 対策:送信前に形式チェック(@の有無など)

エラー2:メールサーバーの応答なし

  • 対策:タイムアウト設定、再送信機能

エラー3:必須項目の未入力

  • 対策:送信前の入力チェック、エラーメッセージ表示

追加の対策

  • すべてのエラーをログに記録
  • 管理者への通知機能
  • ユーザーへの分かりやすいエラー表示

データの流れを理解することで、自動化の可能性が大きく広がります。次回もお楽しみに!

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行