DXと言いつつバシバシExcel使ってる企業はDXの本質を理解していない

目次

デジタル化と情報共有

別れましょう私から消えましょうあなたから

嬉しいでしょ明日から自由になれる♪

90年代前半あるある。曲名ちょっと長くなりがち。jimです。ども✋

自分の思ってることをストレートにタイトルにしたので長くなっちゃいました。

ってことで、今回は『DX』について語りたいと思います。

まず一度、わすれましょうDXから。。。

で、考えていきましょう本当に大事なこと。。。

情報共有

どんな仕事も情報共有は大事です。

何処に何があるとか、誰が今なにしてるとか。5W1Hみたいなことは情報共有したいものです。

Who⇒誰が、When⇒いつ、Where⇒どこで、What⇒何を、Why⇒なぜ、How⇒どのように

こやつら、とても大事です。

そして、仕事というのは幾つも工程があって、『今、誰がどこまで進めている。』といった情報を把握することが凄く大事です。

例えば:情報共有できてない状態で、『自分の仕事に関係ある人が新コロで2週間も休み』なんてことがあったら大変ですよね。

『何処に顧客の情報があるの?』とか、『顧客とどこまで話が進んでるの?』とか、『え?そもそも、どうやって顧客と連絡とってたの?』なんて探すだけでも大変。

デジタル化

企業の規模にもよりますが、、

じゃあ、こういった情報共有って。。。

・紙でやります?

面倒。更新するのに不向き。皆で1つの紙を囲む?ダメですよね。

・ホワイトボードでやります?

別フロアや別部署が絡んでたら使えないし。そもそも書ききれないですよね。

・Excelでやります?

先ず、ExcelよりAccessのが情報共有に向いてます。そして、社内で済むことならいいけど、取引先が絡んでたら?運用難しいですよね。

じゃあ、、

じゃあ、、、

じゃあ、どうします?

インターネットを活用して、Webアプリでデータベース管理しましょう。それなら情報共有できる。

何かあれば、皆でその都度データベースを更新していけばいいし、迷ったらデータベースを参照すればいいよね。って感じ。

こういった思考が、DXの本質だと思うのね。

まあ、簡単に言うと『できるだけデータベース管理したらいいよ。』ってこと。

今の日本で言われてるDXはDXじゃない。DXという名の情報商材だ。詐欺だ詐欺。

 

情報技術で自動化

こうしてデータベース管理にしてしまえば、プログラミングで自動化できますよね。

っていうのが情報技術(IT)だと思うんだよね。

でも実際には、Excelで計算させて計算結果をデータベースに更新している企業が結構あるわけ。それでは遅いし非効率。そもそも順番の間違いに気付いてない可能性もあるね。

それで『DX』なんて言っちゃってるから笑える。

とにかく、手元にある情報は一刻も早くデータベース化する仕組みにした方がいい。

システムでの自動化は後でいい、データベースになっていればSQLぶん投げるだけで効率化できるわけなんだし。

 

原始人の話

派遣先で実際にあった原始人達の話。

とある業務について、『データベース管理しようか』みたいな話が出たみたいなんだけど、「単価を見直すたびにシステム改修が発生してしまう。」とか何とか言ってデータベース化を諦めてたのですよ。

それって、あなたの感想ですよね?

単価のテーブルを用意すれば改修なんて必要ないはず。

例えばAccessで説明すると。。。

↓のような数量のテーブルがあったとして、『うーん!』の項目が年度や取引先でバラバラ

でも・・・

↓のように『どこの会社のこの期間がいくらだよ』っていう単価のテーブルを用意します

んで、以下のようなSQLを投げてやれば簡単に更新できるわけよ。

UPDATE 数量 LEFT JOIN 単価 ON 数量.取引先=単価.取引先

(数量のテーブルと単価のテーブルの取引先を紐づけて更新します)

SET 数量.うーん!=数量.数量*単価.単価

(数量テーブルのうーん!に数量と単価をかけたもの)

WHERE 数量.売上日 BETWEEN 単価.開始期間 AND 単価.終了期間;

(数量テーブルの売上日が単価テーブルの開始期間から終了期間まで)

VBAでやると⇒

Option Explicit
Sub DX()
Const dbName As String = ".accdb"
Dim adoCn, adoRs As Object
Dim sqlStr As String
    Set adoCn = CreateObject("ADODB.Connection")
    Set adoRs = CreateObject("ADODB.Recordset")
    adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & dbName & ";"
    sqlStr = "UPDATE 数量 LEFT JOIN 単価 ON 数量.取引先=単価.取引先"
    sqlStr = sqlStr & " SET 数量.うーん!=数量.数量*単価.単価"
    sqlStr = sqlStr & " WHERE 数量.売上日 BETWEEN 単価.開始期間 AND 単価.終了期間;"
    adoRs.Open sqlStr, adoCn
    adoRs.Close
    adoCn.Close
End Sub

こうして数量のテーブル見てやると。。

『A社の21年度の単価100×数量3』が計算されて300に更新されました。

今度は、前年度に変更して。。。

再びSQL投げてやる。。。

270に更新されるわけだ。

わかりやすいように1件で説明したけど、複数あっても一緒。該当するものがあれば全て更新されます。

もう既に『うーん!』に値が入っていたら更新したくないって時はWHEREに『AND うーん! IS NULL』でも追加してやればいいだけのこと。

ね?こんなことで諦めるなんて原始人でしょ?

でも、日本の企業の多くはこういう感じ。知らないか、知ってても面倒だから言い訳して済まそうとする。

本当のDXは本質から目を背けてはいけない。

問題があったら打ち破ろうとしないと駄目なんだ。

やばいぞ日本。。。

 

 

はい。ってことでDXについてでした。

単純なことだよ。でも、実際にやろうとすると大変。

直ぐに諦めてしまう人では務まらないかなと思う。

ある程度データベースの知識があって、根気や忍耐力がある人がやらないと失敗するでしょうね。

あ、ちなみにDXとIT・IoTは別なことと思っておいた方がいいかな。って思ってます。

したら、またねぇ✋