【问题标题】:Expanding a table of frequencies in Excel into a single column将 Excel 中的频率表扩展为单列
【发布时间】:2011-12-17 08:51:26
【问题描述】:

我在 Stack Overflow 上的其他地方读到过这里可以接受 Excel 问题,所以请不要生气 :) 如果它们应该在其他地方,请告诉我...

我很沮丧,因为我很确定我曾经知道如何做到这一点。

想象一下下表:

Frequency       Object
3               A
2               B
4               C

在第三列,我希望 Excel 写:

A
A  
A
B
B
C
C
C
C

(3 A,因为 A 的频率 = 3)

我很确定这可以通过复制到第三列的单个公式来完成,但我不记得如何了。有什么建议吗?

【问题讨论】:

  • #1 由于您的问题涉及公式,我认为这里可以接受。任何更概括的问题(即如何制作图表)都应该去 superuser.com。但那只是我的个人意见。 #2 为什么你在这个问题中标记了 openoffice?那是一个完全不同的软件。
  • 您的对象数量有限吗?即它只是 A-C 还是更像 A-J 或某个未知数字?

标签: excel excel-2007 worksheet-function openoffice-calc


【解决方案1】:

我喜欢 (1) 公式的优雅,但它只有在您没有重复的对象(数据)时才有效。

这将始终有效,只要您在 E2 中没有与零不同的数字值 E3:E6 中的 Freq 值和 D3:D6 中的 Obj,公式从 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+Enter在P3中向下复制

CR

【讨论】:

    【解决方案2】:

    在所需输出列的第一个单元格中(本例中为 E1),输入

    =B1
    

    其中 B1 是第一个对象的地址。在下面的单元格中(E2,此处),输入

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

    并根据需要填写。

    【讨论】:

    • 您好,感谢您的回复。我想知道为什么 E 列涉及此公式。我假设 A 和 B 是包含数据的列,C 是要添加第三列的列。
    • 抱歉。 E列是我输入公式的地方。我将编辑以添加该信息。
    • @Excelllll,这是一个令人印象深刻的公式。我想我会先求助于一个宏,然后再尝试解决这个问题。不错!
    【解决方案3】:

    假设您的示例中的对象数量有限,请尝试以下操作:

    1. 在一张空白纸上,将示例表放在左上角。所以单元格 A2=3、B2="A"、A3=2 等等。
    2. 在 D2 中,输入“A”(这只是为了启动公式)
    3. 在 D3 中,输入这个公式:

      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)))  
      
    4. 将此公式填写(即复制和粘贴)大约 10 行,您会看到所有内容都相应填写。

    你问它有什么作用?首先,它计算“A”在 D 列的先前单元格中出现的次数,并将其与频率进行比较。如果小于,则进入另一个 A。然后对 B 和 C 重复该过程。

    【讨论】:

    • 感谢您的回复。我有大量的有限对象。你提供的公式被截断了吗?似乎没有足够的右括号。
    • 谢谢。我修好了它。由于此公式要求您为每个对象输入单独的行,因此它可能不适用于您的情况。
    猜你喜欢
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    相关资源
    最近更新 更多