【问题标题】:Formula or macro to group cells according to their values根据单元格的值对单元格进行分组的公式或宏
【发布时间】:2015-06-12 10:49:01
【问题描述】:

我正在使用一个电子表格,该电子表格需要根据单元格值及其下方单元格的值重新命名单元格。基本上我有下面的列,它由一个链接到另一个电子表格的公式填充。

Column A
EE
EE
SP
EE
CH
CH
EE
SP
CH
CH
EE
  • 对于具有EE 的单元格,并且其下方的单元格为EE,则第一个单元格应为“仅限EE”。
  • 对于任何具有EE 的单元格,并且它下面的单元格是SP,然后是另一个EE,那么前两个单元格应为“EE+SP”。
  • 对于任何单元格EE,其下方的单元格为CH,则这些单元格应为“EE+CH”。
  • 对于任何单元格EE,其下方的单元格为SPCH,则所有这些单元格都应为“EE+FAM”。

上列应如下所示:

Column A
EE Only
EE+SP
EE+SP
EE+CH
EE+CH
EE+CH
EE+FAM
EE+FAM
EE+FAM
EE+FAM
EE Only

这是一张很长的价值观表,老实说,我什至不确定最好的方法是什么。

我需要创建一个值表来查找,还是有一个宏可以处理这个?

【问题讨论】:

  • 你可以用 VBA 做到这一点。您将需要一个循环构造来遍历每一行。对于每一行,查看单元格并确定它是否包含 EE。如果它是 EE 行,则设置一个标志并使用第二个循环向下工作,直到结束或下一个 EE。这将决定您对这一行和后续行的称呼,直到最后或下一个 EE 行。
  • 你有任何可以工作的代码吗?如果我发送了一个找到 EE 的循环构造,似乎我需要多个辅助循环来查看是否应该将单元组重命名为 EE+SP 或 EE+FAM 等。

标签: excel if-statement excel-formula worksheet-function vba


【解决方案1】:

来自您的输入示例:

=IF(AND(A2<>"EE",B1="EE+FAM"),"EE+FAM",IF(AND(A2="EE",OR(A3="EE",A3="")),"EE Only",IF(OR(AND(A1="EE",A2="SP",A3="EE"),AND(A2="EE",A3="SP",A4="EE")),"EE+SP",IF(OR(A2="CH",A3="CH"),"EE+CH",IF(AND(A2="EE",A3<>"EE"),"EE+FAM","")))))  

应该导出你的输出示例。

【讨论】:

  • 嗨,小伙伴们,我不确定你的公式是否完全有效。我在第一个 AND 语句中将 B1 更改为 A1,因为我认为这就是您的意思,但是当我插入它时,IF 语句似乎不起作用。不过,我会继续考虑你的想法,谢谢你的帮助!
  • 如果我将公式放入B1A1A2,那不是循环引用吗?
猜你喜欢
  • 2017-08-24
  • 2017-05-17
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 2022-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多