如果细胞满足特定条件,如何重复多次然后恢复正常?

如果细胞满足特定条件,如何重复多次然后恢复正常?

我在 Excel 工作表中有数据。具体来说,我在列D和 E(以及其他一些列)中有数据。我想使用列F和 G中的数据,用公式填充列D和 E。规则如下:

  • 通常,应该与 相同。FnDn
  • 如果是“Depression”或“Hyperinflation”,那么,  和 应该是“Depression”(即,“Depression”将在接下来的三个单元格中重复出现),并且,  和 应该被忽略。 注意:某些文本值有尾随空格,因此需要。DnF(n+1)F(n+2)F(n+3)D(n+1)D(n+2)D(n+3)
    TRIM()
  • G应该E遵循相同的规则。

第二点隐藏了一个微妙的陷阱。考虑以下数据:

F G
59 沮丧 布拉59 沮丧 布拉59
60 高于平均水平 布拉60 沮丧 布拉60
61 沮丧 布拉61 沮丧 布拉61
62 平均的 布拉62 沮丧 布拉62
63 平均的 布拉63 平均的 布拉63
64 高于平均水平 布拉64 高于平均水平 布拉64

F59为“抑郁症”,因为它与 相同D59。但是,由于D59为“抑郁症”, F60, F61 和 F62也设置为“抑郁症”,并且D60, D61 和 D62被忽略。具体来说,我们忽略D61也是“抑郁症”的事实,因此我们不将F63 和 设置F64为“抑郁症”,而是让它们等于D63 和 D64

一些已发布的答案(错误地)设置F63 为 F64“抑郁症”。


編輯:

如果 D 列是“恶性通货膨胀”、“恶性通货膨胀”或“萧条”、“恶性通货膨胀”,您将如何解决?

“恶性通货膨胀”,“恶性通货膨胀”工作表: Excel 工作表

我希望它看起来像: Excel 工作表

“萧条”、“恶性通货膨胀”工作表: Excel 工作表

我希望它看起来像: Excel 工作表

因此,在 D 列中,如果单元格是“恶性通货膨胀”或“萧条”,并且在接下来的三个单元格中还有另一个“恶性通货膨胀”或“萧条”,则我不想在 F 列中重复它们。因此,D 列接下来三个单元格中的“恶性通货膨胀”或“通货膨胀”将被忽略。

Dropbox 链接:https://www.dropbox.com/scl/fi/wxfzk0r320wm57r7jge5b/PART-B.xlsx?dl=0&rlkey=z407ft00oi9e0i4m9qlvmmirh

答案1

我认为,使用封闭形式的单细胞公式无法满足问题的要求。考虑以下假设数据以及相应的期望结果(据我了解要求):

F
72 蚂蚁 蚂蚁
73 蝙蝠 蝙蝠
74
75
76 沮丧 沮丧
77 插图 沮丧
78 大奖 沮丧
79 沮丧 沮丧
80 袋鼠 袋鼠
81
82 沮丧 沮丧
83 旋律 沮丧
84 夜鹰 沮丧
85 沮丧 沮丧
86 橙子 橙子
87 紫色的 紫色的

第 83 行和第 84 行与第 86 行和第 87 行之间没有局部差异。我相信,如果不查看整个列,列 F(或 G)中的公式就不可能区分这些情况D 。

幸运的是,使用辅助列似乎相当容易。选择两个你不使用的列。它们可以是H和 I、 Y和 Z、 AF和 AG,或者你想要的任何值。我假设你选择H和 I

假设您的数据从第 15 行开始(如您的问题所示),并且单元格H14I14为空(应该是这种情况,因为我假设您没有使用辅助列),请输入

=IF(AND(H14>0,H14<4), H14+1, --OR(TRIM(SUBSTITUTE(D15, CHAR(160), " "))="Depression",TRIM(SUBSTITUTE(D15, CHAR(160), " "))="Hyperinflation"))

进入单元格H15,然后输入

=IF(H15>1, "Depression", TRIM(SUBSTITUTE(D15, CHAR(160), " ")))

复制到单元格 中F15。复制F到 中G,然后H向下I拖动/填充。

辅助列中的值“通常”为 0。当为 0 时, 设置为 (表达式的最后部分)。我们使用是因为文件中的数据有尾随空格,这会导致字符串比较失败。我们使用是 因为文件中的数据有尾随空格,这会导致字符串比较失败H(n-1)Hn--OR(D15="Depression",D15="Hyperinflation")IFTRIM()SUBSTITUTE(cell, CHAR(160), " ")不断裂空间, 无法TRIM()处理,因此我们必须在调用之前将它们转换为常规空格TRIM()。如果 等于两个触发词之一,则此OR 表达式为,否则为。 将它们变为 1 和 0。值为 1 表示这是重复块的第一行;值为 0 表示这是另一个正常行。TRUEDnFALSE--

如果H(n-1)为正数但小于 4,则表示行 n-1是重复块的一部分(但不是最后一行),因此 Row n必须是重复块的一部分(但不是第一行)。因此我们添加 1(表达式的中间部分IF),以表示该行 n是重复块的第 2、3 或 4 行。如果 是 4,我们将返回基于 的 设置。H(n-1)HnDn

列的公式F表示,如果行 n是重复块的第 2、3 或 4 行,则设置为“Depression”;否则,则设置为等于 。FnDn

相关内容