穷人的数据网

卢卡斯Rayala
卢卡斯Rayala ✭✭✭✭✭
编辑02/23/23 最佳实践

在获得Datamesh之前,我设计了一个解决方案,可以将数据从一个页面传输到另一个页面,而不需要匹配的列。此过程使用中间表。这是一种痛苦的设置,但它工作得很好,几乎不需要维护。我仍然发现在一些非常小的用例中,这会派上用场。我想和大家分享一下。

下面是源和目标表的示例,中间有一个“清理”表。要求:

  • 源表和清理器必须具有具有共享唯一id的引用列。我将在下面告诉你如何管理它。
  • 清洁表必须具有与t相同的列标题arget表。
image.png

在源表和清洁表之间设置匹配的唯一id

您可能有一个不断添加数据的活动工作表。您甚至可能没有与数据关联的唯一id,或者它们可能是不可预测的。您需要的是源表中可预测的唯一Id。为此,设置一个Row ID列。这将为每个传入行提供一个连续的行ID。在上面的例子中,行号是1-5。

然后,在清洁页上,添加一个数字列表,以涵盖您的已知行(即。“1-5”)和足够的未来行,这样你就不必经常回去添加更多。我通常一次加载大约3000个,而且我几个月都不用看它们。你可以很容易地在excel中创建一列数字,然后将它们复制粘贴到清洁工的参考列中,每次500个。

镜像数据在你的清洁单上

现在您有了一个惟一的id作为引用,可以使用跨表列公式以所需的格式引入所需的数据。在清洁表示例中,我将名字和姓氏合并到一列中以匹配目标表。我还删除了房屋信息的颜色。“客户名”的公式看起来像这样:

=INDEX(COLLECT({source_name}, {source_rowid}, [Extra Column]@row),1) + " " + INDEX(COLLECT({source_lastname}, {source_rowid}, [Extra Column]@row),1)

通过自动化发送数据

使用自动化将数据传输到目标表。有几件事要记住:

  • 您可能需要设置一些条件交叉表逻辑,以触发信息在正确的时间出现。例如,您可能只希望在选中源工作表上的复选框后才传输数据。您可以设置清理表,以便仅在选中相应的复选框或满足其他条件时才填充数据。
  • 要使用MOVE还是COPY命令由您自己决定。我发现使用MOVE命令很好,因为它实际上是从清理表中删除行ID,并且不可能意外地发送更多行ID。有时,我添加了一个ID来重新进行转账。使用“COPY”命令将行ID保留在更干净的页面上,但您可能需要进一步的逻辑来保持re-triggering自动化并再次发送行。
  • 您不能使用公式触发自动化(他们这样做是为了防止意外地重复触发自动化)。但是,您可以设置基于时间的自动化,以便根据公式列发送。我有一个例子,我设置了12个相同的基于时间的自动化,每个都是不同的小时。很优雅,我知道。

方便的技巧

请记住,清理器列标头必须与目标列标头完全匹配。您的move命令将发送每个列,包括清理页面上的行ID列。然而,移动自动化不能覆盖列公式。如果你在清洁表中将行ID列命名为与指定了列公式的目标表中的列命名相同,所有数据都会复制或移动,除了行ID,因为那将无法发送。

用例

这个技巧有很多用例。我最初设计它是因为我必须连续合并来自三张看起来完全不一样的独立表格的数据。我用一张白纸来分析所有的数据。在这种情况下,我实际上有三组唯一id,一组用于匹配每个工作表。复杂?是的。但它解决了一个不可能解决的问题,好了。

标签: