2017-07-30 1 views
3

私のGoogleスプレッドシートのH列には、IP番号のリストがあります。スクリプトに何が必要なのか、それらの数字を取得して国名を取得します。スプレッドシートがWebフォームから作成されるため、これをスクリプトにする必要があります。私が持っているものは、完全にそれを行う式ですが、各フォームの提出で手動で式をコピーする必要があります。 1日にたくさんの提出物を受け取るので、これを手動で行うのは面倒です。スプレッドシートの更新を実行するスクリプトが必要です。私が持っている式は次のとおりです。GoogleシートスクリプトでIP番号の範囲から国名を取得し、結果を別の列に貼り付けてください。

=query(importhtml("http://whatismyipaddress.com/ip/" & H1526, "table", 2), "select Col2 where Col1 = 'Country:' ", 0) 

最後に入力された行はH1526です。私は "ARRAYFORMULA"を試しましたが、配列式はクエリ関数で動作しないようです。私がIPを持っている列はHで、列Iに国名が必要です。

答えて

0

Googleフォームの送信時にスクリプトを書くことができます。また、同じもののトリガを設定する必要があります。お役に立てれば。

enter image description here

function OnSubmit(e){ 
    var sheetDatabase = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    sheetDatabase.getRange(sheetDatabase.getLastRow(), 8).setFormula('=query(importhtml("http://whatismyipaddress.com/ip/"&I'+sheetDatabase.getLastRow()+', "table", 2), "select Col2 where Col1 = \'Country:\' ", 0)'); 
} 
+0

エクセレント!!それはうまくいった!私はちょうど間違った列と間違った行に数式をコピーしていたので、&Hのための9と8の "&I"を変更しなければならなかった。しかし、それは働いた! :Dありがとう! もう1つ質問があります。どのように私はあなたのスクリプトを適用し、同じセル(置換を意味する)に空間的に「貼り付けるだけで」それを貼り付けることによって、シートを自動的に国名をコピーすることができますか?なぜなら私は2000年以上の行を持っているので、セルを数式で保つと、シートがデータを取得するのに多くの時間がかかるからです。結果が得られた後に特殊なペーストをコピーして、シートが高速に読み込まれるようにしたい。 –

関連する問題