今回も実際に依頼された社内DX案件を紹介します。
■案件2 架電内容ごとの情報振り分け
依頼内容
社内のデータベースにあるコールセンターのデータを特定の条件で振り分けてもらいたいというもの。
今はスタッフが手作業で振り分けていたようだが、それをVBAで何とかしたい。というもの。
つまりこれを
こうしたいということ
実際のデータはこんな感じなのですが、
これを
・架電理由
・工程名称
・NAT
・意思確認
の値が以下の条件に当てはまるようなパターン処理が必要となる。
というわけで今回はこんな処理をなるべくシンプルになるようなマクロを作成します。
今回作るマクロ
実際の処理の流れは非常に簡単で
1.シート「抽出データ」のデータを取得する
ただ、この”条件”が非常に厄介です。
先ほどの分類の条件をもう一度確認しますがこんな感じです。
これをフローチャートで表すとこんな感じで複雑です。
更にこれをマクロで書くとこうなります。
strKaden = 架電理由の値を格納
strKoutei = 工程名称の値を格納
strNAT = NATの値を格納
strIshi = 意思確認の値を格納
とすると、
If strKaden = "自動更新" Or strKaden = "OB対象外" Or strKaden = "審査" Then If strKoutei = "電話・本人宛NAT" Then If strNAT = "" And strIshi = "1" Then strSheetName = "パターンA" Else strSheetName = "パターンL" End If ElseIf strKoutei = "電話・事前不備有" Then strSheetName = "パターンB" ElseIf strKoutei = "電話・本人宛不備" Then strSheetName = "パターンC" ElseIf strKoutei = "電話・同意" Then strSheetName = "パターンD" ElseIf strKoutei = "電話・資料請求" Then strSheetName = "パターンE" Else strSheetName = "パターンL" End If ElseIf strKaden = "電話・資料請求" Then If strKoutei = "電話・本人宛NAT" Then strSheetName = "パターンG" ElseIf strKoutei = "電話・事前不備有" Then strSheetName = "パターンH" ElseIf strKoutei = "電話・本人宛不備" Then strSheetName = "パターンF" Else strSheetName = "パターンL" End If ElseIf strKaden = "窓口(新規)" Then strSheetName = "パターンI" ElseIf strKaden = "不明" Or strKaden = "乗換" Or strKaden = "利用率高" _ Or strKaden = "未成年" Then strSheetName = "パターンJ" ElseIf strKaden = "ハイクラス" Then strSheetName = "パターンK" Else strSheetName = "パターンL" End If
かなり見づらいコードになりますね。
なので、今回は少しやり方を変えて、
架電理由:①
工程名称:②
NAT:③
意思確認:④
として、①②③④の値からパターン分けしていきたいと思います。
どういう考え方かというと、ASN.1の列挙型(ENUMERATED)に近いのですが、
①架電理由=自動更新・・・1
②工程名称=電話・本人宛NAT・・・1
③NAT=空欄・・・1
④意思確認=1・・・1
である場合、①②③④は”1111”となります。
でこの①②③④が”1111”の時はパターンAと判定する。
①②③④が"12xx"の時はパターンB、"15xx"の時はパターンEとすることで、複雑な条件式を作らなくてもよくなり、また条件が増えた場合においても修正が簡易となります。
※xは不問(どんな値でもよい)
このような場合はどのように書いていくのか、次回は実際にコードを書いてみたいと思います。
次 > 【社内DX案件紹介】架電内容ごとの情報振り分け-2-
■社内DX案件紹介
【社内DX案件紹介】データの期間によってレコードを分割しファイル出力する
0 件のコメント:
コメントを投稿