如何转置数据在其他选项卡在excel中

mgdq6dx1  于 2023-03-31  发布在  其他
关注(0)|答案(2)|浏览(112)

我正在寻找一个表格转置到Excel中的其他选项卡。
我的第一张table:

First_Name | Last_Name | Company   | Number  | Done (1 = yes / 0 = no)
-----------------------------------------------------
Allison    | Dark      ! McDonald  | 2,00    |  1
John       | Doe       | Amazon    | 10,00   |  1
Julian     | Smith     | Coca Cola | 3,00    |  0
Kathy      | Johnson   | Coca Cola | 20,00   |  1
Barbara    | Brown     | Tesco     | 10,00   |  0
Alexander  | Lee       | Amazon    | 4,00    |  0
Harry      | Moore     | Amazon    | 8,00    |  0

如何在其他选项卡中检索这些数据,如下所示:

Company   | Number of names | Done   |  Sum of Numbers 
------------------------------------------------------
Amazon    |     3           | 1 on 3 |   22,00
Coca Cola |     2           | 1 on 2 |   23,00
McDonald  |     1           | 1 on 1 |   2,00
Tesco     |     1           | 0 on 1 |   10,00

我正在寻找一个公式,但它也可以在vba。感谢您的帮助。

bwitn5fc

bwitn5fc1#

使用旧版本的Excel来获得唯一的列表,您可以复制所有 * 公司 * 列表并使用Excel功能 “删除重复项” 或将公式放入A13并将其向下拖动直到它变空:

=IFERROR(INDEX($C$2:$C$8, MATCH(0,COUNTIF($A$12:A12, $C$2:$C$8), 0)),"")

要获取公司名称计数,请粘贴B13并向下拖动:

=COUNTIF($C$2:$C$8,A13)

对于C13中的“完成”:

=COUNTIFS($C$2:$C$8,A13,$E$2:$E$8,1)&" of "&COUNTIF($C$2:$C$8,A13)

对于D13中的数字之和:

=SUMIF($C$2:$C$8,A13,$D$2:$D$8)

结果:

使范围适应您的数据和新表目标。

6jjcrrmo

6jjcrrmo2#

  • 假设问题中列出的标签没有Excel版本限制 *。这是REDUCE/VSTACK模式的另一个应用,您可以检查我对以下问题的回答:如何将Excel中的表格从垂直转换为水平,但长度不同。该公式溢出整个结果,包括标题,并返回按公司名称排序的结果。在G1上输入以下内容:
=LET(in,A1:E8,h,TAKE(in,1),data,DROP(in,1),cmp,INDEX(data,,3),ux,UNIQUE(cmp), 
 done,INDEX(data,,5), amnt,INDEX(data,,4), header,{"Company","Number of Names",
 "Done", "Sum of Numbers"}, CALC, LAMBDA(x, LET(a, cmp=x, b, SUM(N(a)), 
  c, SUM((a)*(done=1)), HSTACK(x, b, c&" on "&b,SUM(a*amnt)))), out, DROP(REDUCE(
  header, ux, LAMBDA(ac,x, VSTACK(ac, CALC(x)))),1),VSTACK(header, SORT(out)))

下面是输出:

用户LAMBDA函数CALC执行计算,以在REDUCE的每次迭代中生成一整行。我们不能使用头部来初始化累加器(ac),因为我们需要首先对结果进行排序。

相关问题