● 動的な表=(Excelはもちろん・全表計算ソフトで使える・重要な)「★ データ管理」の「★★ スタート」となる表=テーブル、実表、リスト形式の表、明細表、データベース形式の表
「動的な表」を扱うソフトの代表格 → →「データベースソフト」が多いです。ORACLE(オラクルデータベース)、SQL Server、MySQL、PostgreSQL、Microsoft Access、Microsoft Query、FileMaker、など。(世界中のWebカートやGoolgeなどの企業の社内システム、弥生・奉行シリーズ等のデータベース、などに使われています。ただ、ソフト側(機械のルール)に人間様が少し合わせないといけません。なお、静的な表も生み出せますけど、下記の「静的な表を扱うソフトたち」のようなイレギュラーな静的な表は作れません。(下記のソフトたちで作れるような、ある意味「メチャクチャな静的な表」は作れません。下記のソフトたちはルールを逸脱するほどの「それが作れるがために」「メチャクチャなことがやれるがために」、重宝がられています。)
「静的な表」を扱うソフトの代表格 → →「表計算ソフト」が多いです。Excel、Googleスプレッドシート、Calc、三四郎、など。グラフや画像(ベクタ、ラスタ)なども扱えます。ソフト側に人間様合わせなくてもいいです。人間側のルールで言うことを聞かせることができます。でも、それがゆえの非効率をかなり生み出します。そのために無駄な「VBAや関数の多用」が必要になってきます。なお、動的な表も一応は扱えますけど、上記のソフトたちほどは扱えません。
『もしお仕事中に「動的な表」を見つけたらこう思えるようになって下さい。「やったあ!無駄な多段的関数やVBAを無くしてExcelの自動集計機能がたくさん使える!面倒から解放される~!!」』
※まだ書きかけです。すみません。
※間違ってたらすみません。
※メモ書きなので、自分でも意味不明な箇所も多いです。ごめんなさい。
※(参考)Excelでは、「動的な表」・・・、たとえばシートに作った「動的な表」を、「システムテーブル」として扱えます。そしてその「システムテーブル」は、ExcelVBAにて「DAOやADOやMicrosoft Query」といった機能などから「SQLやUpdateメソッドなど」を使うことで「閉じたExcelファイルを ”閉じたまま”、読むだけでなく、書き換えもできてしまう」いったことができるようになります。(関連記事:1、2、3)
※関連記事
『 静的な表=データ管理の「最終形」となる表=クロス集計表、マトリックス表、縦横表、など。 』
目次
★ はじめに
★ 動的な表の実例
★ 動的な表から自動的に生み出せるもの
★ もし仕事中に「動的な表」を見つけたらこう思えるようになって下さい。
★ 補足・・・『「静的な表=クロス集計表」は、「動的な表から」「自動で作る」という意識に変える・・・』ことからすべてが始まります。
※Shift+TABキー、もしくは、Homeキー、Homeキー+TAB数回、を押すと、目次付近に戻れます。
★ はじめに
「動的な表」は当サイトで勝手にそう呼んでいる呼び名です。
「データ管理の世界標準」の中においては、「スタート」となる表です。(「データ管理の世界標準」とは、複式簿記と同じくらい有名なもので、世界的に波及しているデータ管理の基礎のことです。単なる「Excelの基礎」とは異なり、どんな表計算ソフトにも対応・適用できる、あくまでも「データ管理についての」基礎です。)
データ管理の世界標準の基礎では、一般的には、「テーブル、実表、リスト形式の表、明細表、データベース形式の表」などと呼ばれています。
並べ替えや各種集計(=変形)をして、色々なことを調べることができ、物事を考えたり意思決定したりするときに利用します。もちろん、「静的な表(クロス集計表)」と同様に、「仮説と検証」や、「PDCAサイクル回し」、「問題の数値化」などにも活用できます。
並べ替えや各種集計(=変形)はもちろん、動的な表から更に動的な表を産んだり、複数の動的な表をかけあわせたり、クロス集計表を産んだりが自由自在で、「一回入力しただけの表を何百パターンと再利用できる・変形と戻しが自由自在」なので、それで、「動的」「ダイナミック」という意味で、当サイトでは「テーブル、実表、リスト形式の表、明細表、データベース形式の表」のことを「動的な表」と勝手に呼んでいます。
「動的な表」はある意味、「システムそのもの」と言うこともできると思います。
例えば当サイトでもご紹介しています、「30分で作れるバーコードPOSレジのコア部分」も、中身はたった3、4枚の「動的な表」です。
なお、当サイトでは、「クロス集計表(=マトリクス表=縦横表)」のことを、「静的な表」と呼んでいます。
そしてその「静的な表」のことを、「データ管理の世界標準の基礎」における「最終形態」、と位置付けていますが、「動的な表」は、その対義語として扱っています。
あと、「動的な表」は、VBAプログラムを使わずに、「Microsft Query」とか「ピボットテーブル」といった20年前からある「複数条件自動集計装置・複数条件自動リストアップ装置」にかけて集計効率等々を高めることができますが、「静的な表(クロス集計表)」では、同じことは基本的にはできません。
『 静的な表=データ管理の「最終形」となる表=クロス集計表、マトリックス表、縦横表、など。 』
https://euc-access-excel-db.com/tips/ct08_exceltruebasic/ct080301_dynamictable_n_statictable/static_table
★ 動的な表の実例
特徴としては下図のような感じです。
(01)「列名」しかない。「行名」は無い。また、「列名」に空白セルは存在しません。
まったくの空白行や空白列も存在しません。(「ほとんど」空白の列や行・・・はありますが、どこかの列に必ず、列名が一つと値が一つ、最低限入っています。
Excelの場合、もしまったくの空白行や空白列があれば、それは別の表とみなされます。
(02)データは時系列に、縦方向にのみ、蓄積されていきます。横方向に時系列的には蓄積されません。(逆に横方向にデータを時系列的に蓄積してはいけません)
(03)セル結合は1つも使われません。
(04)1行分=1レコード分=カード形式データベースの1画面分
データの最低限の単位は、1行分です。そして1行分のデータのこを「1レコード」と呼びます。
つまり、動的な表は複数行のレコードの集まり、ということになります。
また、1行分=1レコード分は、カード形式データベースの1画面分、でもあります。
そういうデータのくくり、単位となっています。
(05)データの羅列なので、ぱっと見・何が何だか分からない。
動的な表は、時系列で縦に並べられたデータの羅列なので、ぱっと見・何が何だか分かりません。
でも、この表を、「SQL」や「ピボットテーブル」といった「自動集計&自動リストアップ装置」にぽいっと投げつけるだけで、「細かいビジネス定型集計とリストアップ(しかもけっこうな複雑な条件での)」を、VBAプログラムを使うよりも10~100倍短時間で、あるいは低金額で、できるようになります。
また、クロス集計表もそのような過程で作られる表の一つです。
※★★ 重要関連記事
『もしお仕事中に「動的な表」を見つけたらこう思えるようになって下さい。「やったあ!無駄な多段的関数やVBAを無くしてExcelの自動集計機能がたくさん使える!面倒から解放される~!!」』
※動的な表の「Excelの場合」の作表ルール(詳細版)
Excelの真の基礎~効率を良くする作表の基本手順(ちょっと詳細版)~Excelやパソコンを単なる電卓としてではなく、真のコンピュータとして使うために~Microsoft Queryやピボットテーブルを使えるようにするために
https://euc-access-excel-db.com/tips/ct08_exceltruebasic/ct080820_make_table_rule/table-make-tutorial-01
基本的には、前述の(01)から(05)のようになっていれば、難しいことはないのですが(小学生でもやれますので)、ここでは「Excelの中で動的な表をより効率よく使うための詳細な注意」が書いてあります。ご参考にしてみてください。
たとえばシートに作った表を、「システムテーブル」として扱え、それがDAOやADOやMicrosoft QueryなどからSQLやUpdateメソッドなどを使うことで「閉じたExcelファイルを ”閉じたまま”、読むだけでなく、書き換えもできてしまう」いったことができるようになります。
ただこれはExcelの場合なので、他の表計算ソフトでは使えないかも知れませんが、でも、注意事項はほぼ同じだと思います。
★ 動的な表から自動的に生み出せるもの(VBAプログラミング無しに)
動的な表を VBAプログラミングを使わずに・・・、例えば『「SQL」や「ピボットテーブル」といった20年近くも前から既にExcelの中に組み込まれている「自動計算&リストアップ装置」』にかけると、次のように新たな表を産んで、いろいろに活用できます。
(a)SQLを使うことで、「単一の動的な表からさらに別の動的な表(仮想表)を産みだすことができ」、それをピボットソースにすることができます
(b)SQLを使うことで、「複数の動的な表を掛け合わせて、さらに別の動的な表(仮想表)を産みだすことができ」それをピボットソースにもできます
(c)ピボットテーブルを使うことで、「静的な表=クロス集計表」を簡単に生み出せます。
(d)SQLを使うことで、「複雑な条件での集計表(売上と粗利の集計表など)」を作れます。ピボットにもかけられます。
(e)SQLを使うことで、「複雑な条件でのリストアップ表(顧客リスト、DMリスト、カルテ、在庫表、その他諸々)」を作れます。ピボットにもかけられます。
このように、動的な表から、さらにたくさんの動的な表を産みだせるし、クロス集計表も生み出せるし、並べ替えや集計も自由自在になるので、つまり、動的に変形・集計等々ができるので、「動的な表」と当サイトでは呼んでいます。
※なお、静的な表(クロス集計表)からVBA無しに自動的に産み出せるものは、基本的には「ありません」。
※SQL=Excelでは「Microsoft Query(2003以前では「新しいデータベースクエリ」)と呼ばれる機能のことです。Microsoft Queryは「フィルタオプション」機能と「集計」機能を足したような機能です。例えば、フィルタをかけると同時に(ついでに)集計・リストアップをもしてしまうことができ、かつ、その結果の表をさらにピボットのソースに「可変的にいつでも条件変更しながら再設定なしで」セットできます。また、VLOOKUP関数を扱うかのように、2つの表を紐付けして新たな動的な表を産みだすこともできます。紐付け自体はドラッグ一発だけでできます。Accessというデータベースソフトの「クエリ」という機能と、見た目も操作方法もかなり似ています。
少しまとめますと、「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、といったデータベース製品に触れる前に、それらの製品の基本原理を学ぶことができます。
ExcelでのGUIでの簡易SQL機能「Microsoft Query」の使い方(Excel2010でもほぼ同じ操作です) ~ ビジネスデータ管理(コスト減等含む)を2~100倍効率化するツールその1
★ もし仕事中に「動的な表」を見つけたらこう思えるようになって下さい。
もしお仕事中に「動的な表」を見つけることができたなら・・・、「あ!これは動的な表の形だ!」と判別ができたなら「やった!次のことができる!」と思えるようになってください。
***********
やった!無駄な関数と数式を激減させて自動集計ができる!
関数たくさん使うのめんどくさいもんね~。
やった!無駄な関数やVBAを大幅に減らして数百通りの切り口での集計切り替えが数秒・数分から十数でできる
やった!無駄な関数やVBAを大幅に減らしてこのデータを十数から数百種類の切り口(用途・シーン)で「使い回し」ができる。(=一度入力しただけのデータから十数~数百通りのデータの再利用ができる!)
やった!無駄な関数やVBAをまったく使わずに、数十~数百もの、「クロス集計表の自動作成(=タテヨコ表の自動作成)」ができる!
関数たくさん使うのめんどくさいもんね~。
やった!簡単なものなら複数条件でのフィルタ操作と集計操作を同時にできるから一瞬で集計が終わる!
**********
技術的な面から書くと、つぎのようなことができる、とも思えるようになってください。
・ピボットテーブルが使える
・Microsoft Query(SQL)が使える
・数百切り口での集計切り替えが数秒数分から十数分でできる
・このデータを十数から数百種類の切り口で使い回しができる
・無駄な関数なしに色んな条件での長多角瞬間切り替え集計が秒単位、分単位でできる
・無駄なVBAなしに同上のことができる
・無駄な関数とVBA無しにほとんどのビジネス定型集計とリストアップがとてもやりやすい!
★ 補足・・・『「静的な表=クロス集計表」は、「動的な表から」「自動で作る」という意識に変える・・・』ことからすべてが始まります。
ちなみにですが、データ管理の基礎の世界では「静的な表=クロス集計表」は・・・、本当は「動的な表=テーブル」から、「SQLやピボットテーブル」などを用いて、「自動的に」つくりあげるものです。
データ管理の世界標準の基礎では、「静的な表=クロス集計表」を手作業で作ったりしません。
「動的な表=テーブル」から、「SQLやピボットテーブル」といった「ある意味自動計算器」=「20年以上も昔からある自動集計機能(両方ともExcelにも入っています)」などを用いて、「自動的に」つくりあげるものです。
(SQLだけで言うと30年以上も前からあります。)
特に、システム業者さんや専任の社内SEの方々は、昔から「SQLやピボットテーブル」といった、複式簿記と同じくらい有名な「自動集計機能」が存在することを既に知っているので、「静的な表=クロス集計表を手作業で作るのなんてやってらんない。そんなの面倒くさいから 昔からある自動集計機能でぱぱぱっと作っちゃう」ということをずーっと昔からやっています。
でも、多くのパソコン教室ではそれを教えてくれません。
Excelにもその機能が「(特にSQLは)20年も前から」組み込まれているのに、です。
いきなり、最終形である、「静的な表=クロス集計表」を、「手作業で」作ることから教えられます。
自動ではなくて。
もちろん、超初心者の方には、最初はその教え方のほうがとっつきやすいのでそう教えするのはあたりまえといえばそうなのですが、問題は、「より複雑な条件で色んな切り口に切り替えて短時間にパッパッパと集計切り替えをしたり、リストアップ切り替えがしたい」という場合です。
それは経営者も現場の方もやりたいのですが、その時に、「VBAから入る」という「間違った道」を日本のマイクロソフト、Excelのレジェンド、Excelのパワーユーザーさんたちは広めてしまいました。
なぜ「SQLやピボットテーブル」をVBAよりも先に教えなかったのか、わかりませんが、ビジネス定型集計やリストアップだけに限って言えば、VBAよりも、「SQLやピボットテーブル」のほうが、「プログラマでもSEでもない人々」が、「短時間に欲しい数字を得る」ことができます。
決して「超」簡単ではないですが、かといって「超」難しいわけでもありません。
ビジネス定型集計やリストアップくらいのレベルのことでしたら、経営の数字を知りたい、と常々考えている方なら、理解できるくらいの難易度です。
VBAよりも10倍簡単で早くてコストも安いです。
まさに、安い、速い、うまい、です。あくまでも、ビジネス定型集計やリストアップに関してだけ、ですが・・・。
いずれにしましても、そのとっかかりは、『「静的な表=クロス集計表」は、「動的な表から」「自動で作る」という意識に変える・・・』ことから始まります。
関連記事
『 静的な表=データ管理の「最終形」となる表=クロス集計表、マトリックス表、縦横表、など。 』
https://euc-access-excel-db.com/tips/ct08_exceltruebasic/ct080301_dynamictable_n_statictable/static_table
- 投稿タグ
- 「本物」に近づくために, テーブル, パソコンでの自動化, ビジネスパソコンの基礎, ピボットテーブル関連, 用語, 自動化