检测 LibreOffice calc 中未排序列中的重复值?(问答)

检测 LibreOffice calc 中未排序列中的重复值?(问答)

我有一张表,其中有一列用于表示唯一 ID。是否可以使用公式检查唯一性标准是否得到满足?

例如,假设表格当前显示

ID        Summary
T1204     Fix user crash.
T1201     Fix tester crash.
T1202     Implement that feature.
T1203     Implement that other feature.

假设我现在创建一个新条目

T1204     Make program say "Hello World." on startup

我想要一个公式TRUE,如果出现这样的重复,它会变成,或者一个计算此类重复数量的公式。

约束:假设,列需要保持独立于 ID 列的排序——例如,按照附加列中指定的类别排序。

答案1

更简单的方法是对 ID 列进行排序,然后在另一列中输入一个公式,检查前一个值是否相等 =if(A2=A1;TRUE;FALSE)

答案2

相关技巧是使用数组公式

在给定的示例中:

    |  A      |  B                                |  C(Values) |  C(Formulae)
----|---------|-----------------------------------|------------|---------------------------
 1  |  ID     |  Summary                          |            |
 2  |  T1204  |  Fix user crash.                  |  2         |  {=COUNTIF(A2:A11;A2:A11)}
 3  |  T1201  |  Fix tester crash.                |  1         |
 4  |  T1202  |  Implement that feature.          |  1         |
 5  |  T1203  |  Implement that other feature.    |  3         |
 6  |         |                                   |  0         |
 7  |  T1204  |  Make program say "Hello World."  |  2         |
 8  |  T1203  |  Another duplicate                |  3         |
 9  |  T1203  |                                   |  3         |
10  |         |                                   |  0         |
11  |         |                                   |  0         |

然后可以通过大于一的列条目识别重复项。

如何输入数组公式

{=...}Libreoffice 使用该符号来表示数组公式,但不能用于进入相反,公式必须正常输入,=COUNTIF(A2:A11;A2:A11)但随后通过以下方式声明为数组公式:

  • 输入包含范围的公式,然后按Ctrl+Shift+Enter
  • 在公式对话框(Ctrl+F2)中勾选“数组”复选框。

O(N²) 时间依赖性

然而,该解决方案确实具有二次时间依赖性;尝试输入整个列的公式,例如{=COUNTIF(A:A;A:A)},则很有可能导致 LibreOffice 崩溃。

它实际上的作用应为:

for i from 2 to 11
    set cell C,i to sum over:
        for j from 2 to 11:
            1 if cell A,i matches cell A,j
            0 otherwise

在实践中,我发现很难重现数组公式的真正作用,并且更改它们通常需要一些反复试验。

备选:检测是否存在重复。

或者,可以使用数组公式{=SUM(COUNTIF(A2:A11;A2:A11)) - COUNTA(A2:A11)},它将是正数如果有重复则为零,否则为零。这种方法的优点是数组公式可以干扰编辑功能,例如拖放整个表格行。

相关内容