2

网址 - https://docs.google.com/spreadsheets/d/1lvmwHqINzKxjKgZjmDAkntFDo2R_lrfy2GUd-ohCA2A/edit#gid=1237083423

如您所见,有一列显示 IP 地址。基本上,它是一个调查表 (JotForm),其回复在 Google 电子表格上实时更新。

根据可用的 IP 地址,我如何找到其各自的国家名称。

我有一个解决方案

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

但在这方面,我面临一个问题。我正在使用 jotforms 并将其与 Google 电子表格集成。它为我提供了迄今为止收到的所有回复的位置。我使用了下拉功能并将其拖到第 100 号单元格。收到新响应后,信息现在存储在第 101 号单元格中,而我输入公式的所有其他位置都留空。

有什么解决方法吗?任何数组公式都可以吗?

还有其他方法吗?

4

1 回答 1

1

你的公式似乎运作良好。不幸的是,我还没有找到使用 arrayformula() 的更简单方法。但是您关于如何自动进行此更新的问题是非常可行的。以下假设您已将公式放在单元格 G2 中。(您可能会发现您也想在其他地方使用它,在这种情况下,您只需创建不同的函数以使其工作并将它们放入 onChange())。

  1. 打开你的脚本编辑器。工具->脚本编辑器

  2. 将以下代码添加到脚本编辑器的末尾:

    function updateCountry(){
      var mysheet = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = mysheet.getSheetByName("Submissions");  //Sheet Name is "Submissions"
      var sourceCell = sheet.getRange(2,7,1,1); //Row 2, Column G, First Row in G, 1      Column in Range
      var targetRows = sheet.getRange(3,7,sheet.getLastRow()-2, 1); //Row 3, Column G, Last row currently populated, 1 Column in Range
      sourceCell.copyTo(targetRows); //Will copy the formula from sourceCell to targetRows.
    
    }
    
    function onChange(){
      updateCountry(); //Run this on every change.
    }
    
  3. 将编辑后的脚本文件另存为“CCI 响应”。

  4. 现在在脚本编辑器中转到 Resources->Current Projects Triggers。使用下拉菜单生成以下设置并保存:触发器

  5. 现在看看将新 IP 添加到 G 列时会发生什么。

于 2014-06-24T13:14:02.947 回答