web-dev-qa-db-ja.com

Importhtmlでインポートされたテーブルのすべての行の合計を取得します

HTMLテーブルをGoogleスプレッドシートにインポートする方法を見つけましたが、行を合計する方法はありますか?

ナスダックから総収益の合計を取得したい。

これにより、Nasdaqから四半期ごとのデータを取得できました。

=arrayformula(index(importhtml("http://www.nasdaq.com/symbol/ko/financials?query=income-statement&data=quarterly", "table",0)))

これを最後に追加することで行全体を合計できると思った:

sum(c2+d2+e2+f2)))

それは機能せず、エラーが発生します:

=arrayformula(index(importhtml("http://www.nasdaq.com/symbol/ko/financials?query=income-statement&data=quarterly", "table",0),sum(c2+d2+e2+f2)))))

データを取得した後、合計するのではなく、4つのデータを見つけて合計するだけですか?

1
Tyler Durden

arrayformulaindexがある理由がわかりません。インデックスと日付と通貨の書式設定を台無しにすること以外は、ほとんど何もしません。 importhtml コマンドでも、「0」が何をするのかわかりません。

特定の列の合計を取得するには、 query を使用できます。

=query(importhtml("http:...", "table"), "select Col1, Col3+Col4+Col5+Col6 label Col3+Col4+Col5+Col6 'Total'")

label Col3+Col4+Col5+Col6 'Total'部分はオプションで、ヘッダーの見栄えを良くするだけです。)

四半期データも取得する場合は、四半期列も含めます。また、それらを時系列に並べ替えることもできます

=query(importhtml("http:...", "table"), "select Col1, Col3, Col6, Col5, Col4, Col3+Col4+Col5+Col6 label Col3+Col4+Col5+Col6 'Total'")

最後に、各四半期の終了日は合計したいものではないことに注意してください。追加しないようにする1つの方法は、ヘッダーの数であるqueryの3番目のパラメーターを使用することです。

=query(..., "...", 2)

これにより、2番目の行もヘッダーであることがクエリに伝えられるため、ヘッダーの内容がヘッダーに追加されます。別の解決策は、where句をクエリ文字列に追加して、この行を除外することです。

select ... where Col1 != 'Quarter Ending:' label ...
1
user79865