>>>データベースのサンプルを見てみる, 通常のエクセル関数とは違い、SQLのようなQuery関数も簡単に使うことができます。Query関数は以下のような式を記述すると利用することができます。, 以下のように山田家と佐藤家のデータベースがスプレッドシート内に格納されているとします。, まずselectでG〜Jまでの列をしていします。さらに「山田」さんで検索するためには[where 列 like キーワード%]という書き方が必要です。H列のlikeで「山田」を指定します。queryの書き方は以下になります。, さらに「男性」という条件をつけたいとします。I列の条件を「男性」とします。また先ほどの「山田」を姓に含むは継続して条件検索したいので、間に”and”を加えてください。, 最後に「20歳以下」という条件を加えます。エクセルでもIF関数などででてくる「<=(以下)」という演算子を利用して下さい。queryの記載方法は下記のようになります。, クライアントの業務を徹底的にITで効率化する。プログラムをガシガシ書いてます。集客、マーケティング、営業を支援するWEBアプリも作ってます。Python/GoogleAppsScript/Javascript, =QUERY($G$2:$J$7,”select G,H,I,J where H like ‘山田%'”), =QUERY($G$2:$J$7,”select G,H,I,J where H like ‘山田%’ and I=’男性'”), =QUERY($G$2:$J$7,”select G,H,I,J where H like ‘山田%’ and I=’男性’ and J<=20″), >>>参照:Googleスプレッドシートと連携!Googleフォームを使ってみた。, セブンイレブンの住所をスクレイピング、GoogleMapAPIで緯度経度に変換して地図プロット. (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; ⑨ スプレッドシートのファイル→共有→アクセスできるユーザー→web上で一般公開&アクセス設定を共同編集者に変更 そして、最後にHTMLを作る。 ※下記09.のaction部分に上記URLを張り付ける。 ", "https://www.googleapis.com/oauth2/v4/token", "https://accounts.google.com/o/oauth2/token", "https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=", "response_type=" & response_type & "&" & _, Set ie = CreateObject("InternetExplorer.Application"), InStr(LCase(.LocationURL), "https://accounts.google.com/o/oauth2/approval") < 1, auth_code = .Document.getElementsByClassName("qBHUIf")(0).value, .Navigate "https://accounts.google.com/o/logout", While .Busy Or .ReadyState <> READYSTATE_COMPLETE, Private Function GetAccessToken(ByVal auth_code As String) As Boolean, Set RS = db.OpenRecordset("setting", dbOpenDynaset), "client_secret=" & client_secret & "&" & _, With CreateObject("WinHttp.WinHttpRequest.5.1"). (adsbygoogle = window.adsbygoogle || []).push({}); Google Apps Scriptで外部のMySQLデータベースに接続する, "https://ssl.gstatic.com/docs/script/css/add-ons.css", "https://officeforest.org/wp/Library/cssman/insert.css", "//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js", 'https://officeforest.org/wp/library/icons/token.png', この設定は、Google Cloud SQLのMySQLへ接続する為のインスタンス名を設定する場所です。Cloud Consoleから取得できます。, '(ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(ID), ', 'NAME VARCHAR(255), BUSYO VARCHAR(255), ', "`.`jinji` (`NAME`, `BUSYO`, `AGE`, `JOB`) VALUES (?,?,?,? >>>データベースのサンプルを見てみる, スプレッドシートのデータベースからは、APIに繋ぎこみメール/SMS/ブラウザ電話も行うことができます。私も実際に営業セールスや集客マーケティングにスプレッドシートを使って売上UPに繋がってます。, 円グラフ・棒グラフ・散布図等、エクセルにある機能は基本的に網羅されています。データ分析をするときも、RやPython(Pandasやmatplotlib)やBIツール等を使う必要がなくなります。スプレッドシートではエクセルと同様に直感的な操作でわかりやすいデータビジュアルを作成することができます。, エクセルではVBAでプログラミングができますが、スプレッドシートではGoogleAppScript(以下GAS)でプログラミング可能です。例えば、スプレッドシートに更新がかかったタイミングでメールを送ったり、チャットワークに送信したりといったプログラムを作ることも可能です。通常のデータベースでは、そうした連携にエンジニア工数が多くかかりますが、スプレッドシートxGASであれば手軽に実装できます。GASをサーバレスなバックエンドとして使うケースも増えてます。, スプレッドシートにはSQLに類似するQuery関数が存在ます。エンジニアにも馴染みのある構文で検索・抽出しやすいです。またこれまでオートフィルやvlookupを使って、消耗していた、マーケターやWEB担当者にとってもQuery関数なら検索が圧倒的に楽に早くなります。Query関数がエクセルよりオススメな大きな理由です。以下利用方法をご紹介するので、エンジニア以外の方も是非覚えてみてはどうでしょうか。 (window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js","msmaflink"); b[a]=b[a]||function(){arguments.currentScript=c.currentScript Jdbc.getCloudSqlConnection(“jdbc:google:mysql://インスタンス接続名/接続DB名“, ユーザID, パスワード); getCloudSqlConnectionメソッドを利用し、接続文字列の後に、上記の通り、インスタンス名、接続DB名といった形がつなげると接続が可能になります。接続インスタンス名は、主に以下のような感じの文字列です。, ここが一番苦労しました・・・ちなみに、Google Cloud SQL以外のサイトのMySQLへ接続する場合には、以下のような形になります。. b[a]=b[a]||function(){arguments.currentScript=c.currentScript (window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js","msmaflink"); 小規模なデータでは、多くの企業でスプレッドシートをデータベース化させつつあります。データベースとしてスプレッドシートを使う6つのメリットやスプレッドシート独自の検索方法をサンプル付きで … Googleスプレッドシートを用いてデータベース化するということにはどのようなメリットがあるのでしょうか? 以下にメリットを記載しています。 すべてに共通していることは、いかに効率よくデータを扱えるようにするのかという部分です。 さて、次はいよいよ、フォームに入力した内容が複数のスプレッドシートに登録されるようなスクリプトをかいていきます! 次回の記事「Google Apps Script」で社内システムをつくってみた~GASとの出会 … c.getElementById(a)||(d=c.createElement(f),d.src=g, さて、次はいよいよ、フォームに入力した内容が複数のスプレッドシートに登録されるようなスクリプトをかいていきます! 次回の記事「Google Apps Script」で社内システムをつくってみた~GASとの出会 …

>>>Indentのお問い合わせはこちら, Googleフォームでアンケートを作り、スプレッドシートに1クリックで連携することができます。スプレッドシートはエクセルと似ているので、編集・集計も楽。一緒に働くメンバー誰でも扱いやすいファイルです。実際の連携方法は下記がわかりやすく紹介されています。 Jdbc.getConnection(‘jdbc:mysql://yoursqlserver.example.com:3306/database_name‘, {user: ‘username‘, password: ‘password‘}); getConnectionメソッドを利用し、サーバーアドレス、DB名、ユーザID、パスワードと繋げて接続します。メソッドと接続用文字列が異なるので、注意が必要です。, 今回はCloud SQL側に1枚だけテーブルを作ってありますので、これに対して1行新規データを追加、またテーブルの中身を取得してAlertで表示するといったものを作ってみたいと思います。まずは現在テーブルに入ってる情報を抜き出して見たいと思います。, 次にHTMLサービスで作成したフォームに情報を入れて、このDBへデータを1行追加するというのをやってみたいと思います。スプレッドシート上でHTMLサービスで作成したダイアログに入力後、送信を押すとCloud SQLのMySQLへデータがインサートされるという単純な仕組みです。, 次にレコードを更新をする事例です。。今回はIDが1の人間の役職名を変更するというシーンを想定してコードを記述してあります。よって、UPDATE文だけでなくWHERE句も出てきます。, データベースのレコードを同じくWHRER句で条件をつけて削除します。今回はIDが7の専務を消し去りたいと思います。POSITIONで専務としても良いのですが、それだと無関係の専務まで消えてしまうので注意してください。あくまでIDが7の魔王専務です。WHRER句はANDをつけて2つ条件をつけても良いでしょう。, 手元にあるAccessアプリケーションからも接続出来るようにし、Google Apps ScriptではなくAccessをクライアントにして運用ができたら、手持ちのアプリを簡単にクラウド化する事が出来るのではないか?と思い、チャレンジしてみました。, MySQL Migration Toolkitはすでに開発終了済みで古いツールなのですが、AccessデータベースをMySQLのテーブルに変換し送り込むツールです。使用する為には、旧Java SE 5.0が必要なので、そちらも別途インストールが必要。また、インポート時に型や文字コードを自動判定するのですが、失敗するので、適当に進めず文字コードなどはとくにしっかり指定しておきましょう。。, MySQL WorkbenchでGoogle Cloud SQLの中身を見てみたところ、データは空っぽでしたが、無事にテーブルは出来ていて、きちんとテーブル定義も変換して取り込めていました。テーブル定義が非常に面倒なので、これだけでも非常に助かるツールですね。Windows版しかありませんが。, 手持ちのAccess2013よりODBC接続でテーブルをリンクできれば、データはGoogle Cloud SQL、開発はコレまで通りAccessで可能になるのではと、MySQL Connector ODBCドライバをインストールし、設定をしてリンクテーブルでつなげてみました。なお、5.3 DriverはVisual Studio 2013 の Visual C++ 再頒布可能パッケージに依存しているので、それもインストール済みでなければインストールできません。, ※「作成後の設定を施する」にて、接続元IP許可に自分のアクセス元のIPアドレスを登録しておく必要があります。, AccessでODBC接続させてデータの取得には成功しました。これを実運用する場合、企業などのように「プロキシーを利用した固定IP」が接続元ならば、それらのIPを登録すれば問題ありません。必ずユーザはプロキシーを経由するからです。, しかし、そうではない環境の場合、接続元のIPアドレスは固定ではなく、場合によっては特定のアドレスレンジまるごと登録といった雑な許可をする必要があります。そこで用意されているのが、Google Cloud SQL Proxyを利用した接続です。この方式の場合、DBへはグローバルIPアドレスではなく、ポートフォワーディングされたlocalhostで接続が可能になります。クライアント側のIPアドレスが変動しても問題なく、継続して接続が可能になります。接続手順は以下の通り(今回はWindows版で説明します), ※Linux, OSX, Windowsのそれぞれ32bitと64bit用にプロキシープログラムが用意されています。, ※Cloud SDKを利用した方法もあるのですが、PCにPythonがインストールされている必要があるため、手間が多いので今回はやめておきました。専用のサーバでも用意する場合には良い選択肢かもしれません。, サービスアカウントの作成とキーを手に入れました。続けて、cloud_proxyのプログラムをダウンロードし設定・実行します。キーはこのプログラムの中で利用します。, cloud_sql_proxy.exeおよび秘密鍵のJSONファイルを元にMySQL ODBC 5.3 Unicode Driverにて、DSNレスで接続させてみました。Autoexecマクロで、Accessファイル起動時に実行させれば、自動的にプロキシー起動⇒ODBC接続でリンクテーブル作成が可能になります。ただしこのコードには以下の課題があります。, とりあえず、簡単なコードは以下の通り。MySQL ODBC 5.3 Unicode Driverを利用していますが、DSN設定を利用せずにリンクテーブルを作成しています。, 今回はGoogle Cloud SQLをテーマに外部のデータベース接続についてこれまで記述しました。しかし、Google Apps ScriptのJDBCサービスでは他にもMicrosoft SQL Server、Oracleに対応しています。これらは前項で紹介したgetConnectionにて接続用URLを渡せば、操作する事が可能です。, JDBCサービスからのアクセスは以下のIP範囲からのものを、相手方DBサーバで許可(ホワイトリスト)してあげる必要があります。, また、MySQLからフォークして作成されているMariaDBやCloud SQLにあるPostgreSQLについては、JDBCサービスではサポートされていません。stackoverflowでは、Google Apps ScriptからPostgreSQLに関しては、REST APIアクセス化する為のPostgRESTというものがGithubにて公開されています。GASからはUrlfetchAppでアクセスする方法を使うようです。しかし、UrlfetchAppは結構使用制限の厳しいものなので、素直にMySQLのレンタルを選んだほうが幸せになれると思います。, 其の場合、GASからのアクセスはねこの足跡Rさんのページにて、IP範囲についてのエントリーが紹介されています。, MariaDBについては、MySQLからフォークされているものの、お互い最新版では互換性が薄れています。其のため、Google Apps ScriptからMySQLとして「MariaDB」を使う場合には、MariaDBのバージョンは5.5である必要があります。これは、MySQL WorkbenchでMariaDBに接続する場合も同じです。, […] ツールを作る事に特化しています。GCPのサービスなので有償です。GASでもGoogle Cloud SQLをバックエンドにしたアプリは作ることが可能です。個人的にはスプレッドシートをバックエンドに […], このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。.