【问题标题】:Excel: How to replace missing values with numbers from a series?Excel:如何用系列中的数字替换缺失值?
【发布时间】:2019-09-20 11:12:01
【问题描述】:

我创建了一个公式来检查 A 列并返回 B 列中与前者的值匹配的位置;除非在 B 列中找不到来自 A 列的值,或者在 A 列中重复了相同的值,在这种情况下它返回“NA”。这是我的意思的一个例子。

    A   B   Output
1   ABB AAB 2
2   AAB ABB 1
3   BCA BCA 3
4   BDA BDA 4
5   AFA BEA 7
6   BDA AGB NA
7   BEA AFA 5
8   BFB BHA NA
9   BHA CEB 8
10  BEC DEB NA
11  BED BED 11
12  DEB     10
13  DID     NA

现在我想用输出中缺少的行中的数字(在本例中为:6、9、12 和 13)按顺序替换 NA。结果会是这样。

    A   B   Output
1   ABB AAB 2
2   AAB ABB 1
3   BCA BCA 3
4   BDA BDA 4
5   AFA BEA 7
6   BDA AGB 6
7   BEA AFA 5
8   BFB BHA 9
9   BHA CEB 8
10  BEC DEB 12
11  BED BED 11
12  DEB     10
13  DID     13

我该怎么做呢?

【问题讨论】:

  • 我认为这只能通过带有公式=IFNA(C2,C1+1) 的辅助列来完成。如果您的输出列从最低到最高排序并且没有大于一的间隙,这将起作用。

标签: excel replace


【解决方案1】:

如果不使用 VBA,几乎不可能创建一个缺失数字数组并将其分配给#N/A 间隙。

但是,如果您在输出列中从低到高对数据集进行排序,您将得到一个带有间隙的清晰计数器。然后您可以编写以下公式来填补空白:(其中 C 是您的输出列,D 是公式所在的位置)

=IFNA(C2,IF(ISBLANK(D1),IFNA(C2,C1+1),D1+1))

这将获取 C 列中上一个匹配项的编号并将其加 1。除非之前的命中是空的,在这种情况下,它会在这个公式的最后命中加 1(这说明了大于 1 的间隙)。

之后,您可以按值粘贴并合并列。

【讨论】:

    猜你喜欢
    • 2020-08-20
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多