将Excel中的频率表扩展到单个列中
我已经在Stack Overflow的其他地方看到Excel的问题在这里可以接受,所以请不要恼火:)如果他们应该在其他地方,让我知道…
我很沮丧,因为我很确定我曾经知道如何做到这一点。
想象一下下面的表格:
Frequency Object 3 A 2 B 4 C
在第三列中,我想让Excel写:
A AA B B C C C C
(3 A的因为A = 3的频率)
我敢肯定,这可以通过一个单一的公式复制下来的第三列,但我不记得如何。 有什么build议么?
在所需输出列的第一个单元格(本例中为E1)中,input
=B1
其中B1是第一个对象的地址。 在下面的单元格(E2,在这里),input
=IF(COUNTIF(E$1:E1,E1)=INDEX($A$1:$A$3,MATCH(E1,$B$1:$B$3,0)), INDEX($B$1:$B$3,MATCH(E1,$B$1:$B$3,0)+1), E1)
并根据需要填写。
我喜欢(1)公式的优雅,但只有在没有重复的对象(数据)的情况下才有效。
这将一直工作,只要你没有一个数字,不同于零, E3:E6
中的E2频率值E3:E6
和D3:D6
对象D3:D6
,P3中的公式
=LOOKUP(ROWS(P$3:P3)-1;SUMIF(INDIRECT("E2:E"&ROW($E$2:$E$6));">0");$D$3:$D$6)
或者(在这种情况下,你可以在E2中有任何东西)
=INDEX($D$3:$D$6;IF(ROWS(L$3:L3)<=$E$3;1;1+MATCH(ROWS(L$3:L3)-1;SUMIF(INDIRECT("E3:E"&ROW($E$3:$E$6));">0"))))
Ctrl + Shift +在P3中input并复制下来
CR
假设你的例子中有一小部分对象,试试这个:
- 在一张白纸中,将您的示例表放在左上angular。 所以单元格A2 = 3,B2 =“A”,A3 = 2等
- 在D2中,input“A”(这只是为了让公式开始)
-
在D3中input这个公式:
IF(COUNTIF($D$2:D6,$B$2)<$A$2,$B$2, IF(COUNTIF($D$2:D6,$B$3)<$A$3,$B$3, IF(COUNTIF($D$2:D6,$B$4)<$A$4,$B$4)))
-
填写这个公式(即复制和粘贴)约10行,你会看到一切相应的填写。
它是做什么的,你问? 首先,计算D列先前单元格中“A”的出现次数,并将其与频率进行比较。 如果更less,则进入另一个A.然后对B和C重复该过程。