如何转置为“相同”列?

时间:2019-09-09 13:43:08

标签: if-statement google-sheets transpose google-sheets-formula array-formulas

我有一张类似的桌子

<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>

“正常”转置与我想要的非常接近,但是甚至不完全符合我的要求,我想知道如何旋转数据的要点。

另一个例子:

enter image description here

出现错误: enter image description here

我做错了什么?公式是:

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

1 个答案:

答案 0 :(得分:1)

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

0