如何在Google表格中重复行?

时间:2018-07-29 00:20:27

标签: google-sheets google-sheets-macros

我什至不知道如何正确地问这个问题。

我有一个属性列表及其所有者,所有者地址和电话号码。

https://docs.google.com/spreadsheets/d/1-SUC9e53r-o73m5fLaV2FjkcGzLwW4mVPR0rUpw93aw/edit?usp=sharing

您会看到最后10列是电话号码。我想为每个号码创建一个新行,并在电话号码之前的单元格中使用所有相同的信息。有人知道吗?或者可以为我指出正确的方向,我需要学习。我正在尝试YouTube Youtube Marcos,自己学习如何做,但我什至不知道要搜索什么。

1 个答案:

答案 0 :(得分:0)

首先,您需要对数据进行一些清理,因为您希望所有这些电话号码都没有科学符号。可能看起来像是自定义数字格式0(需要多少位数,没有小数位数或逗号),但是您需要找回901之后丢失的数字。

完成此操作后,假设输入工作表名为“输入样本”,然后在所需的输出工作表上,将A到O列的列标题复制到第1行中。在O2中,放置以下公式,这将创建您的电话号码列表按显示顺序排列:=arrayformula(transpose(split(textjoin(" ",false,'Input Sample'!O2:X)," "))) [此公式将电话号码列表放在一起,这些电话号码之间没有空格,以空格隔开,跳过任何空的电话号码,将其拆开并垂直放置。]

其余的工作是组成电话号码所属的字段列表。下面还有其他方法。由于在您的列表中似乎没有两个人拥有相同的电话号码(一旦您清理了这些指数),因此可以使用以下方法。返回到输出工作表的单元格A2中,放置公式=query('Input Sample'!A$2:X$59,"Select A, B, C, D, E, F, G, H, I, J, K, L, M, N"&" where O="&O2&" or P="&O2&" or Q="&O2&" or R="&O2&" or S="&O2&" or T="&O2&" or U="&O2&" or V="&O2&" or W="&O2&" or X="&O2,0)并将其向下拖动到有电话号码的位置。您将获得与该电话号码对应的列值。

请注意,这种方法会跳过没有电话号码的任何人,这似乎与您的目标相符。

编辑:确实可以在没有QUERY的情况下完成,这将减轻重复和大量搜索的可能问题。像以前一样生成电话号码列。为简单起见,通过输入Y2 =counta(O2:X2)并将其向下拖动,在输入表中添加具有电话号码数量的Y列。在所需输出页的A2中,放置以下内容: =transpose(split(arrayformula(textjoin("&",false,iferror(rept('Input Sample'!A2:A&"&",'Input Sample'!$Y2:$Y)))),"&")),然后将其向右拖动到N2。它的工作方式是建立一个字符串,该字符串包含重复的条目,并用“&”(在字段中永远不会出现)分隔,其中每个条目出现的次数是其原始线路具有电话号码的次数,然后将所有这些内容汇总在一起,将它们分开并垂直定向。 iferror处理没有任何数字的人。使用这种方法时,我在最右边的列中和底部看到一些时髦。正确添加更多的列以防止转置而丢失内容或修剪过多的分隔符(这会使公式更加难以理解)似乎没有帮助。 [尽管我很难说出为什么要特别在表中的各个部分中这么做,但是对REPT和字符串可能会有一些限制。]

主要编辑:这是一个更简单的版本,它更可靠,因为它不需要QUERY(重复的数据很繁琐)或REPT和密集的字符串处理(这似乎限制了我的代码或错误代码)。

第0步:将输入的电话数增加到Y列,如上(将Y2 =counta(O2:X2)从Y2向下拖动),然后在Z列中添加电话的第一个索引。在Z2中放置=if(Y2=0,1000000, 1+sum(Y$2:Y2)-Y2)并按Y2对第2行进行排序。由于排序是递增的,因此除了将无电话号码的条目放在最不会造成伤害的底部之外,其他所有内容都将保持不变。

第1步:如上所述,将结果复制到A至N列的列标题上,并在O列中添加“ phone”之类的标题。如上所述,使用O2中的=arrayformula(transpose(split(textjoin(" ",false,'Input Sample'!O2:X)," ")))获取这些数字。 / p>

第2步:在P1中,为该列添加标题“源”,它将告诉您在原始条目块中的何处可以找到该行的值。在P2中放置=IFERROR(MATCH(ROW()-1,'Input Sample'!Z$2:Z,0),P1)并将其向下拖动。这基本上是说,如果我是这组电话号码的第一行,请使用该行,否则,我必须与我上方的条目来自同一行。

步骤3:现在您可以获取所有数据。在A2中,将=index('Input Sample'!A$2:A,$P2)拖到N列中,一直向下拖到数字为止(在您的情况下,是第198行)。