2017-01-14 3 views
0

は基本的に私はこれをやっている:Googleシート:アクセスアレイ一度、スプレッドシートに出力することなく、複数の式で使用

私は私が上で計算を実行している500銘柄のシリーズを持っています。それぞれの計算では、GoogleFinance()を使用して、50日間のオープン、ハイ、ロー、クローズ、ボリュームを取得する必要があります。その後、そのデータを1株あたり約25回再利用します。

GoogleFinanceでは、50行50回の取得が簡単です。 50行X 500 X 25を取得するにはコストがかかります。スプレッドシートは機能しなくなります。データを一度取得したいと思います。私のSPREADSHEETで部屋を取得せずに、私が探している計算を実行するためにそれを25回再利用できるようにします。

ここで私がやっている典型的なクエリの:

GoogleFinance("GOOG" , "all" , WORKDAY(TODAY(), -50) , TODAY()) 

はここ(一回のみ)あなたがそれを処理する方法です、それはスプレッドシート内のスペースを占有せずに(これは50日単純移動平均と計算を取得それ):その後、

Average(Index(GoogleFinance(B10 , "close" , WORKDAY(TODAY(), -50) , TODAY()),,2)) 

私は30、20、16日の平均値を取得したい場合しかし、私は戻ってGoogleのファイナンスへ行くと、データを取得する必要があります(またはスプレッドシート内の配列を持っている)とI高い、低い、開いた、近い計算をしなければならない私はGoogleFinanceからこれらの配列を取得する必要がありますll - 1回の計算で5倍の回数。

私は金融をGoogleやスプレッドシートにデータを入れて行けば、それは(51行に対して)次のようになります。

Date Open High Low Close Volume 
12/21/2016 16:00:00 7.39 7.59 7.34 7.43 38914935 
12/22/2016 16:00:00 7.42 7.57 7.3 7.34 30818204 
12/23/2016 16:00:00 7.36 7.49 7.33 7.44 27258669 
12/27/2016 16:00:00 7.48 7.65 7.43 7.59 44681657 
12/28/2016 16:00:00 7.61 7.62 7.16 7.23 69491582 
12/29/2016 16:00:00 7.22 7.29 7.07 7.16 35444824 
12/30/2016 16:00:00 7.15 7.21 7 7.02 46054539 
1/3/2017 16:00:00 7.2 7.32 6.78 6.92 55800763 
1/4/2017 16:00:00 7 7.07 6.85 7 48230387 
1/5/2017 16:00:00 7.06 7.19 6.89 7.18 54284160 
1/6/2017 16:00:00 7.25 7.28 6.99 7.01 39765906 
1/9/2017 16:00:00 6.91 6.94 6.78 6.87 40637764 
1/10/2017 16:00:00 6.96 7.01 6.87 6.92 28675833 
1/11/2017 16:00:00 6.94 7.01 6.85 6.92 31826672 
1/12/2017 16:00:00 6.99 7.075 6.87 6.93 30604286 

すべての500銘柄のためにこれを行うと、25,000(ISH行)を取り、保守なり悪夢 - 場所のすべてのデータ!

だから、配列を一度取得して、複数の等式で使用し、スプレッドシートでスペースを取らない方法はありますか?

答えて

0

これを行う方法がわかりました。それはかなり優雅です。

基本的な解決策は、次の特性を持つGoogleスプレッドシートのためのJavaスクリプトメソッドを記述することです:

1)それはGOOGLEFINANCEのLIBSにアクセスする方法を考え出すよりも簡単ですので、このような配列(に渡す)君その後、すべてのあなたの計算のために何度も何度も、このデータを使用することができます。
myStockStats(GoogleFinanceの( "GOOG"、 "すべて"、WORKDAY(TODAY()、-50)、TODAY()))

2 )あなたの結果を同じ行に保つのはややこしいですが、これを行うことができます:resultArray.push([ma20、ma50、クローズ、Kpercent、Dpercent、...]);

Googleスプレッドシートで独自の関数を作成する手順は次のとおりです。https://developers.google.com/apps-script/guides/sheets/functions

関連する問題