0

这可能有点奇怪,但我正在围绕一个已经到位的系统工作,并且正在寻找一种在不重组数据的情况下进行改进的方法。

我拥有的是一个包含以下列和数据结构的电子表格。为格式道歉我不知道如何在这里更好地解释电子表格。

LocalizationPackId | TextValue | PageId | TargetId | ApplicationId
         1         |    xxx    |   1    |  AA1     |       1
         1         |    xxx    |   1    |  AB1     |       1
         2         |    xxx    |   1    |  AA1     |       1
         2         |    xxx    |   1    |  AB1     |       1
         3         |    xxx    |   1    |  AA1     |       1

当然,真正的工作表在每个 LocalizationPack 中都有数百个条目。我正在寻找的是一种技术,用于验证包含在 LocalizationPackId = 1 中的 PageId + TargetId + ApplicationId 的任何唯一条目也包含所有后续本地化包中的镜像条目。

在上面的示例中,我希望 MACRO 在运行时检查任何缺失值。它会看到在 LocalizationPack 1 中有一个值 1/AB1/1,然后检查其他包的该值。然后它会发现 LocalizationPack 3 缺少 1/AB1,并从 LocalizationPack 1 创建一个镜像原始行的行,但具有正确的 LocalizationPackId 和 TextValue = "NEEDS LOCALIZATION"。理想情况下,新创建的行也将以红色突出显示。

我对宏没有任何经验,但我对 C# 相当了解。有人可以帮助我开始这方面的工作,或者给我指一个指南来展示完成此类事情所需的技术吗?

4

1 回答 1

0

我将从使用公式而不是宏来识别丢失的本地化包开始。如果 LocalizationPackId 在单元格 A1 中,其他标签在第 1 行,数据从第 2 行开始,那么第 2 行的合适公式为:

=COUNTIFS(C2:C$1000,C2,D2:D$1000,D2,E2:E$1000,E2)-(MAX(A2:A$1000)-A2+1)

...然后可以将其复制到所有相关行(我已将公式带到第 1000 行,但它可以轻松达到您想要的程度)。

(编辑)

这是我的电子表格中的样子,上面的公式在 G 列中:

在此处输入图像描述

(编辑结束)

此公式的结果是与 PageId、TargetId 和 ApplicationId 的每个组合对齐的负数,它显示了在首次引入该本地化之后的包中缺少多少版本的本地化。

它不会告诉您哪个包缺少本地化,但是=COUNTIF()告诉您每个包中存在的本地化数量将为您指明正确的方向。

您可以使用 VBA 自动搜索以准确定义每个包中缺少哪些本地化,但是,如果您不经常这样做,那么编写和调试 VBA 代码可能比其价值更麻烦。上面的=COUNTIFS()公式将提供一个自动和持续的保证,即没有丢失本地化。

如果您经常这样做,那么该=COUNTIFS()专栏将是 VBA 代码自动化该过程的良好开端。

于 2013-01-23T21:44:32.687 回答