Tranposing表google sheet

时间:2017-05-07 14:45:41

标签: javascript google-app-engine google-apps-script google-sheets

在Google Sheet / google script / javascript中,。 我怎样才能转换我的表

来自

05/05/2017  Peter   Apple
05/05/2017  John    Banana
05/05/2017  Jake    Apple
05/06/2017  John    Apple
05/06/2017  Jake    Banana
05/06/2017  Peter   Banana

      05/05/2017    05/06/2017
Peter   Apple        Banana
John    Banana       Apple
Jake    Apple        Banana

TIA。

4 个答案:

答案 0 :(得分:1)

这是我认为的一种方法,附图:

quick google search

答案 1 :(得分:0)

您要问的代码不是转置单元格。你需要跟踪:

  1. 独特的日期列表
  2. 名称的唯一列表
  3. 找到所有的十字路口。
  4. 你还需要解决这个问题:

    • 如果数据对于匹配的匹配项超过1个匹配怎么办:Peter中的05/05/2017 Apple BananaDeque<Point> stack = new ArrayDeque<>(); stack.push(new Point(2,3)); stack.push(new Point(2,4)); Point p = stack.pop(); // (2, 4)

    尝试按部件解决问题,然后提出一些代码并进行改进。

    我建议将这些信息作为起点:

    get value in one column in spreadsheet using google apps script

    Unique values in an array

答案 2 :(得分:0)

1: Paste the table in B1 across D6.

2: In A1 enter this formula -> =ArrayFormula(C1:C&B1:B)

3. In F1, enter this -> =TRANSPOSE(unique({B:B}))

4. IN E2, enter this -> =UNIQUE(C:C)

5. In F2, enter this -> =ArrayFormula(iferror(VLOOKUP($E2:$E&F1,$A1:$D,4,0),""))

您可以在下一列的F2中对公式进行渐变以获取数据。

答案 3 :(得分:0)

该问题尚未完全解释,因此答案基于以下假设: 对于每个不同的日期和每个不同的名称,源范围仅包含一个数据行。因此,我们将不会处理可能的数据聚合。

下面的图片有助于解释解决方案。

enter image description here

E4:E6中的行标题数组由公式=UNIQUE($B$1:$B$6)填充,因为我们应避免重复。该公式适用于单元格E4。 具有日期的列标题数组是通过类似的公式计算的,并在单元格F3中带有附加的转置=TRANSPOSE(UNIQUE($A$1:$A$6))

最后,数据单元F4:G6具有相同的逻辑,并且可以通过从单元F4复制来扩展其公式。结果应在A列和B列中使用2个键在C列中找到。没有直接执行“ VLOOKUP样”功能的功能,因此我们在VLOOKUP之前使用过滤。

有关这些功能的更多信息,请参见:VLOOKUPFILTER