● 自分しか静的な表と動的な表のことを知らないので、結局VBAに頼らざるをえなく、無駄なプログラムを作るしかない・・・、という問題について
「そんなこと言うけど、自分は静的な表と動的な表のことを知っているし扱えるけど、他の人や取引先が知らないので・・・。で、結局VBAに頼らざるをえなく、無駄なVBAプログラムを作るしかない・・・」、という問題について
確かにそうだと思います。
「Excelの真の基礎」を学んだからといって、確かにすぐにはラクにはなりません。
他の方は「Excelの真の基礎」を全く知らないんですものね。
でも、地道に、知っている人がこのサイトの存在から教えてあげてください。
実際に操作はできなくても、「Excelの真の基礎という、そういうものがある」というだけでも分かってもらえなければ、スタートできませんので・・・。
同僚や上司の方が、このサイトを読んで、「ExcelVBAを書きまくるよりも10倍効率的で簡単にビジネス集計とリストアップができる」という認識が「あたりまえ」になれたり、「社会常識」くらいのレベルにまでなれるとどんどんとラクになると思います。皆さんが勝手に自分で集計してくれるようになりますので。(他人に頼むより目の前で処理したほうが速いから。)
そして、社内での実際の動きとしては、そうなれるまで、徐々にで大丈夫ですのでまずは「静的な表と動的な表の区別」から、あなた自身が周囲に要求すればいいと思います。
例えば何らかのデータをどこかからもらうときも、「こういう形の表をくれませんか?そのほうがのちのちの作業がラクなので・・・」と告げてもらってください。
「なんで?」「どういうこと?」と聞かれたら、受け答えは時間の無駄になってしまうといけないのでこのサイトの存在だけ教えてあげてください。
「このサイトに書いてあるとおりのデータ管理に変えたらすごくラクになったから」と告げるだけでいいと思います。
以下、その他の、例えばの、答えのひとつです。
動的な表に直すほうがラクならそうします。
動的な表に直す、汎用的な、プログラムが作れればその後もラクをできます。
自分でできなければ、もし社外にExcelVBAの得意な人がいれば、例えば以下のようなプログラムを作ってもらいます。(それもいなければ業者さんに)
(a)簡単な静的な表なら、完璧に動的な表に一発で直すプログラム
(b)複雑な静的な表なら、段階的に動的な表に直すプログラム
あるいは、途中まででもいいので動的な表に直してくれるプログラム
送られてくる取引先各社や他部署の表にある程度の法則性があれば、「途中までの動的な表への変換」であっても、「自動化」ということで、今よりは短時間で直せるので、それだけでもラクになります。
データの使い回しがしたいならそうしたほうが、都度プログラムを書くよりは、2倍から10倍は効率が良いと思います。
また、無駄なプログラミングも激減します。
今からでも他の人に、できれば社内の人全員に、静的な表と動的な表、フィルタ、SQL、のことを知ってもらい、学んでもらい、「実際に」「Microsoft Query の操作」をしてもらいます。
また、社内のExcelのエキスパートが社内でも社外でもさらに教えます(大変だとは思いますけど・・・)
居なければ外部のExcel講師にお願いします。
SQLやピボットのことがわからなくても、「作表ルール」だけでも守ってもらいます。
(小学生の高学年くらいの子から、ギリギリ、理解できることですので。)
それだけでもかなり効率がアップします。
今からでも「こういう表をくれ」と「動的な表」をもらえるよう相手に頼みます。
社内でも今ある表を少しずつ「動的な表」にかえていきます。
少しずつでもいいので動的な表に変えていけばいくほど、無駄なVBAプログラムや複雑な関数、を書くことが減ります。
数式ミスを増加させる、必要のない無駄なセルリンク設定、無駄な数式、無駄な串刺し集計等々も減らせます。
VBA、関数、リンク、はExcelの真の基礎でカバーできないことだけに使います。
例えばシュミレーションとかグラフの効率化とか、ピボットの自動操作、などです。
本当は、Web上にいらっしゃる「Excelのスペシャリスト」「MVPとか受賞している方々」が、「VBAをお教えする前に」、Excelの真の基礎のことを皆さんに、例えば、小学生に、中学生に、高校生に、お教えすることが一番大切だと思います。
小学生の高学年くらいの子から、ギリギリ、理解できることですので。
ひとまず以上ですが、「現実的でない、面倒くさい」とお感じかもしれませんが、でも地道にこれをやると、もし外注でシステム構築したくなったときに多少なりとも安くなります。データの整理を業者に頼む必要が無いからです。
というのも、業者自体も本サイトで紹介する「Excelの真の基礎」とまったく同じ原理でシステムを作るからです。
逆に言えば、Excelを使ったデータの管理の方法としては、「地道にこれをやる」のが「王道」だと思います。
というか、手間がかかるけれど「これしか道は無い」「他にはない」、と言っても過言ではないと思います。
「コスト」を考えると特にそうです。
「データの管理」という、
「利益に直結するかしないかはあなた(社長様・代表者様)次第のもの」
あるいは、
「あなた(社長様・代表者様)のやる気がなければ現実的には利益に直結することはありえない、ある意味無駄なもの」
で、
「でも自分以外の人に何かをしてもらうには、無ければ無いで、困る」
というものの、
「コスト」を下げたかったら。
その場合には、地道に自社内の表を、動的な表に変えたほうがよいと判断できたものは迷わず、時間がかかっても、動的な表に変えていきます。
過去のものは、本年度からのものだけでもいいと思います。
急がば回れで、Excelの真の基礎をベースに、いままでのExcelの基本操作を上乗せしていきます。
「コストなんてどうでもいい、ほったらかしでもウチは金持ちだからいい。業者に丸投げで全然問題ない。」というのならこのサイト自体も意味がありませんので、スルーしていただければ全然大丈夫かと思います。
「無駄な」VBAはコストを上げてしまう最たるものです。
あるいは、社員様のサービス残業を生む、悪しきもの、です。
社員様の大切な時間を奪う、悪しきもの、です。
(「無駄」じゃないVBAは違います。)
ちなみに、例えばですが、
(21)「売上明細表」には買われた商品の商品IDと実際の売値だけしかない。でも「商品マスタの表」には商品IDごとに仕入れ値やその他の各種の情報が書いてある。ここからこの2つの表を商品IDで結び付けて、「売れた商品の実際の売値と仕入れ値の一覧表」を作りたい。それが出れば、粗利益が出せる。ついでに顧客ごと、メーカーごと、アイテムごと、月ごと、月度ごと、色ごと、気温ごと、指定した期間ごと、の粗利も出したい。
といったようなことは、VBAプログラムなど書くまでもありません。
Excelの真の基礎を理解して、中高生でも余裕でできる作表のルールを守ってもらい、2つの表を商品ID同士でドラッグ操作で結びつけるだけです。
つまり、集計の準備は、「ドラッグ操作一発で終わり」、ということです。
あとはピボットテーブルで、数式を使うこともなく、全部出せます。
慣れた人なら5分くらいで出せます。別の数字を出したいときもついでに出せることが少なくありません。
3つ目の表として従業員マスタも追加で結び付ければ、従業員ごとの粗利もすぐに出せます。これもドラッグ一発で終わりです。
「小学生でもギリギリ、中高生でも余裕でできるパソコン操作」を大人がやれないはずがありません。
「期間別の〇〇別▽▽別◇□別」といった複数の条件を全部同時に含んだ「ビジネスの定型集計・定型リストアップ」をするのに、「そもそもVBAなんて要らない」のですから・・・。
※参考 Excelにおける「SQL」とは?
ExcelにおけるSQLとは、実質、「Microsoft Query」のことをさします。
「Microsoft Query」とは、少々乱暴な言い方をすると・・・
(01)VLOOKUP関数やExcel2016のリレーション機能のように表と表を紐付けする。
(2表間で複数の紐付け可能・2枚以上の表も紐付け可能)
(02)フィルタオプションのようにセルに直接細かい条件値を入れてフィルタする。
(03)複雑でないならフィルタしながら集計機能やピボットのようにグループ化集計できる。
(04)ピボットテーブルのソースにでき、そのデータ範囲を(列や行が増えても減っても)
指定し直さずにいつでもピボット更新でき・結果反映できる。
・・・といった、4つのことを「すべて同時に」できる機能です。
20年前(Excel97の時代)からOfficeに実装されている機能です。(一応Excelからは独立しているプログラムですがExcelとの親和性がすごく良いです。)
「Microsoft Query」の画面は、Microsoft Access のクエリと酷似しています。
「SQL」と呼ばれるものも扱えますので、その勉強にもなり、AccessやSQL Server、MySQL、といったデータベース製品に触れる前に、それらの製品の基本原理を学ぶことができます。
「Microsoft Query」 で私たち素人のエンドユーザーでもできること いろいろ
https://euc-access-excel-db.com/tips/ct08_exceltruebasic/ct081010_agg_n_listup_sql/microsoft-query-can
ExcelでのGUIでの簡易SQL機能「Microsoft Query」の使い方(Excel2010でもほぼ同じ操作です) ~ ビジネスデータ管理(コスト減等含む)を2~100倍効率化するツールその1
https://euc-access-excel-db.com/tips/ct08_exceltruebasic/ct080101_excel_true_can/microsoft-query