首页 > 解决方案 > 如何转置到“相同”列?

问题描述

我有一张像

<table class="tg">
  <tr>
    <th class="tg-0lax">date</th>
    <th class="tg-0lax">organic</th>
    <th class="tg-0lax">referrer</th>
    <th class="tg-0lax">direct</th>
  </tr>
  <tr>
    <td class="tg-0lax">01.01.2019</td>
    <td class="tg-0lax">12345</td>
    <td class="tg-0lax">123</td>
    <td class="tg-0lax">23</td>
  </tr>
  <tr>
    <td class="tg-0lax">25.01.2019</td>
    <td class="tg-0lax">23456</td>
    <td class="tg-0lax">234</td>
    <td class="tg-0lax">34</td>
  </tr>
  <tr>
    <td class="tg-0lax">03.03.2019</td>
    <td class="tg-0lax">34567</td>
    <td class="tg-0lax">345</td>
    <td class="tg-0lax">56</td>
  </tr>
  <tr>
    <td class="tg-0lax">15.04.2019</td>
    <td class="tg-0lax">45678</td>
    <td class="tg-0lax">456</td>
    <td class="tg-0lax">78</td>
  </tr>
</table>

我想将数据放入此视图中,其中所有数据都放置在相同的三列中,而不依赖于第一列中的点是否重复:

<table class="tg">
  <tr>
    <th class="tg-0lax">type</th>
    <th class="tg-0lax">source</th>
    <th class="tg-0lax">date</th>
  </tr>
  <tr>
    <td class="tg-0lax">organic</td>
    <td class="tg-0lax">12345</td>
    <td class="tg-0lax">01.01.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">referrer</td>
    <td class="tg-0lax">123</td>
    <td class="tg-0lax">01.01.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">direct</td>
    <td class="tg-0lax">23</td>
    <td class="tg-0lax">01.01.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">organic</td>
    <td class="tg-0lax">23456</td>
    <td class="tg-0lax">25.01.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">referrer</td>
    <td class="tg-0lax">234</td>
    <td class="tg-0lax">25.01.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">direct</td>
    <td class="tg-0lax">34</td>
    <td class="tg-0lax">25.01.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">organic</td>
    <td class="tg-0lax">34567</td>
    <td class="tg-0lax">03.03.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">referrer</td>
    <td class="tg-0lax">345</td>
    <td class="tg-0lax">03.03.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">direct</td>
    <td class="tg-0lax">56</td>
    <td class="tg-0lax">03.03.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">organic</td>
    <td class="tg-0lax">45678</td>
    <td class="tg-0lax">15.04.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">referrer</td>
    <td class="tg-0lax">456</td>
    <td class="tg-0lax">15.04.2019</td>
  </tr>
  <tr>
    <td class="tg-0lax">direct</td>
    <td class="tg-0lax">78</td>
    <td class="tg-0lax">15.04.2019</td>
  </tr>
</table>

“正常”转置非常接近我想要的,但甚至不完全是这样,我错过了重点,如何旋转数据。

另一个例子:

在此处输入图像描述

出现错误: 在此处输入图像描述

我做错了什么?公式为:

=ARRAYFORMULA({"type","source","date";SPLIT(TRANSPOSE(SPLIT(CONCATENATE(IF(B2:D<>"","♠"&B1:D1&"♦"&B2:D&"♦"&A2:A, )),"♠")),"♦")}) 换行符来自公式 - 我已经删除了它们。错误原因可能是我在德国使用的 Google 电子表格 - 公式语言问题吗?

标签: if-statementgoogle-sheetstransposegoogle-sheets-formulaarray-formulas

解决方案


=ARRAYFORMULA({"type", "source", "date";
 SPLIT(TRANSPOSE(SPLIT(CONCATENATE(IF(B2:D<>"", 
 "♠"&B1:D1&"♦"&B2:D&"♦"&A2:A, )), "♠")), "♦")})

0


推荐阅读