当前位置: 首页 > 知识库问答 >
问题:

IMPORTRANGE不包括第一个空行之后的所有行

祁英哲
2023-03-14

我想知道如何导入一个范围,排除源中第一个空行之后的所有行。

例如,假设有一张有200行的工作表,但第101行是空的,但从102到200,所有行都有值。我只想导入1:100行。

我需要独立于源工作表中有多少行来执行此操作,因为我们定期导入数据,每次导入时有效行的数量都会增加。

共有2个答案

凌俊名
2023-03-14

除了此处已有的内容之外,如果您希望更通用地使用应用程序脚本来执行此操作,您可以将其绑定到工作表并根据需要运行。

假设A列用于要复制到的工作表中的数据,可以通过运行

function obtainFirstBlankRow() {  
  var sheet = SpreadsheetApp.getActive().getSheetByName('SHEET-TO-COPY-TO');
  // search for first blank row
  var col = sheet.getRange('A:A');
  var vals = col.getValues();
  var count = 0;

  while (vals[count][0] != "") {
    count++;
  }
  return count + 1;
}

这将返回与第一行相对应的数字,其中a列中的单元格为空-如果需要,可以通过替换工作表中的a:a来更改检查的列。getRange()到您需要的范围。

然后,您可以使用:

function myFunction() {  
  var startRow = 1; //assuming you want to copy from row 1
  var endRow = obtainFirstBlankRow();
  var startCol = 1; // assuming you want to copy starting at column A
  var endCol = 26; // assuming copying values up to column Z
  var startRowPaste = 1; //assuming you want to copy starting at row 1
  var startColPaste = 1; // assuming you want to copy starting at column A

  //example range to copy from
  var rangeToCopy = SpreadsheetApp.openById('IDOfSheetToCopyFrom').getSheetByName('SheetToCopyFrom')
  var rangeToCopy = rangeToCopy.getRange(startRow, startCol, endRow, endCol);

  //make sure the range you're copying to is the same size
  var newRange = SpreadsheetApp.openById('IDOfSheetToCopyTo').getSheetByName('SheetToCopyTo')
  var newRange = newRange.getRange(startRowPaste, startColPaste, rangeToCopy.getNumRows(), rangeToCopy.getNumColumns()); 
  newRange.setValues(rangeToCopy.getValues());
}

将数据复制到新范围。

张宝
2023-03-14

它是这样的:

=ARRAYFORMULA(
 IMPORTRANGE("ID_or_URL", "Sheet3!F1:F"&MIN(IF(
 IMPORTRANGE("ID_or_URL", "Sheet3!F1:F")="", ROW(A:A), ))))
 类似资料:
  • 我有大量数据,需要清理。B列为关键列;如果B列中有空值,则可以删除该行的其余部分。 我在B列上排序,所有的空值都在表的底部。在C-BZ列中有数据,但在B中没有。我想自动识别B中最后一个非空值(假设它是单元格B3841),然后删除工作表底部的3842行。我的数据集每天都在变化。 下面的代码对B列进行排序,然后删除所有完全空的行。我还想删除在B列中为null但在C或D或任何其他行中可能有数据的行。

  • 目前正在用C#中的ITextSharp构建一个PDF。PDF由三个“部分”组成,一个封面,一个可以跨越多个页面的表格,以及一个最终页面。拥有该表的页面需要在第一页包含页眉,并在所有包含页眉的页面上包含页脚,但封面和最后一页不需要。 我使用XMLWorker构建页面,但这并不重要。构建页面的代码如下: 我遇到的麻烦是确定一种方法来防止页脚出现在结束页上。我正在重写OnEndPage以创建页脚。是否有

  • 我有一本这样的字典: 我需要打印第一行上打印的值列表中的所有第一项,第二行上打印的所有第二项,第三行上打印的所有第三项。像这样: 所有项目的字符长度相同,所有列表的项目数相同。 我有一个字母列表,可以按正确的顺序获取键,我只是不知道如何打印值。我可以打印所有第一个项目: 如何创建上面的输出?

  • 我试着使用电抗器中的SwitchOnFirst算子,这很神奇-除了有时作为双函数的第二个参数传递的transformer似乎不包括第一个元素。基本上,客户端通过RSocket向服务器发送2个项目。代码服务器端如下所示: 客户端第一次启动时,服务器接收这两个项目,并按预期将其发布到actorsink。 但是,如果我停止客户端并再次运行它,则只发布第二项。 一个区别是请求(16)触发请求(16),而不

  • 问题内容: 我对如何在Java中执行此操作有一般的想法,但是我正在学习Python,但不确定如何执行。 我需要实现一个函数,该函数返回一个包含列表中所有其他元素的列表,从第一个元素开始。 到目前为止,我不确定从这里开始该怎么做,因为我只是在学习Python中的for循环是如何不同的: 问题答案: