我觉得我是从 Excel 的思维方式来解决这个问题的,但我就是想不通。我找不到以前类似的问题,但他的问题一定很常见,所以我一定错过了一些非常基本的东西。
我有一张表,其中一列包含文件的文件夹位置。在文件夹位置内有一个包含公司用户 ID 的文件夹,该文件夹可能包含子文件夹,并且该文件夹的路径可能会有很大差异,例如:
文件夹 |
---|
C:\Users\JoeSchmoe\UploadDocuments\Users\ MS123456 |
C:\Users\JoeSchmoe\UploadDocuments\Users\ MS456789 |
C:\Users\Alice\Desktop\ MS123456 \问题 |
C:\Users\Banana\Downloads\Files\ Temp-999999已修复 |
\usny-abcd-efgh\Informatica\ipe\SrcFiles\BusinessInput\ MS456789 |
其中粗体文件夹是用户名
我有一个单独的表,其中每个公司用户 ID 都有关联的名称
用户ID | 姓名 |
---|---|
MS123456 | 德古拉伯爵 |
MS456789 | 杜、史酷比 |
温度-999999 | 亚当斯,星期三 |
我想做的是在 Spotfire 中找到一种方法来链接或转换这两个表,以便在我的文件夹列表中可以清楚地看到用户名,如下所示:
文件夹 | 姓名 |
---|---|
C:\Users\JoeSchmoe\UploadDocuments\Users\ MS123456 | 德古拉伯爵 |
C:\Users\JoeSchmoe\UploadDocuments\Users\ MS456789 | 杜、史酷比 |
C:\Users\Alice\Desktop\ MS123456 \问题 | 德古拉伯爵 |
C:\Users\Banana\Downloads\Files\ Temp-999999已修复 | 亚当斯,星期三 |
\usny-abcd-efgh\Informatica\ipe\SrcFiles\BusinessInput\ MS456789 | 杜、史酷比 |
我陷入了 Excel 思维模式,我会执行 VLOOKUP 或 XLOOKUP 并匹配文件夹路径中的任何现有用户 ID。
我无法在 Spotfire 中执行此操作,因为在链接两个表之前我无法进行转换,并且我无法链接两个表,因为它无法识别文件夹和用户 ID 是否可以匹配(可以理解) 。文件夹路径的差异使得(至少对于我的小大脑来说)不可能隔离用户 ID,以将文件夹列链接到第二个表中的用户 ID 列。
如果文件夹结构是规则的,那就很容易了。在您的情况下,用户 ID 不一定是文件夹结构中的最后一项。
我可以想到一种不涉及脚本的方法:但它通过完全连接进行。
使用此处的建议来执行两个表的完整外部联接: Spotfire 中两个不同表的交叉联接
-首先创建一个新的计算列,例如cross_join_criterion 在“数据”和“文件夹”表中,并分配一个值(例如 1) -创建一个从“数据”表开始的新表(选择+然后从“其他”中选择:链接副本到分析中的数据表) - 转到此新表的数据画布 - 单击表格右侧的加号,然后选择“添加列” -选择加入“文件夹”表,通过 cross_join_criterion 加入并选择连接类型=完全外部连接
结果包含所有可能的匹配,其中一些不正确。 添加一个计算列,例如对于此查找表达式有效:
Find([UserID],[FOLDER])>0
仅对于正确的连接,这才是 True(除非您有两个相互包含的不同用户 ID)。 如果这太复杂(您仍然需要过滤掉不匹配的内容),我建议使用 Python 或 R 数据函数生成一个新表。