创建多个具有可读文本内容(而非文字 URL)的超链接单元格

创建多个具有可读文本内容(而非文字 URL)的超链接单元格

一般来说,我正在尝试创建一个包含数百行相关 URL 的 MS Excel 电子表格。Column A应该包含人类可读的文本,但单元格文本超链接到 HTTP URL。Column B应该包含纯文本文字 HTTP URL(这可以或不能超链接到其明显的 URL,这并不重要)。Column C并且具有简单的纯文本内容。电子表格如下所示:

| 产品 A |http://主机:1234/svn/product_a| 其他数据... |
| 产品 B |http://主机:1234/svn/product_b| 其他数据... |
| 产品C |http://主机:1234/svn/product_c| 其他数据... |

请注意,超链接 URL 和纯文本 URL 是相关的,但是不同的!

我目前有一个bash+sed脚本,使用简单的正则表达式替换 URL 来生成这个详尽的存储库列表,但我找不到任何关于如何表示的 MS Excel 文档纯文本带有超链接文本的单元格(理想情况下适合复制粘贴到电子表格中)。

如果我生成某种像 HTML 这样的标记,那就很简单了;但不幸的是,还有一些额外的列需要提供给其他非开发人员定期编辑。

是否有某种方法可以Column A仅使用复制到单元格中的纯文本来创建单元格?

抱歉,标题太差了,我对 MS Excel 及其术语一点都不熟悉

答案1

如果 B 列已包含 URL,而 A 列包含您的纯文本 URL,则请在单元格中尝试此操作C1。 (这假定您可以插入 C 列用于此用途而不会弄乱您的组织。另一种选择是在 A 列中的每个公式中输入纯文本名称。)

=HYPERLINK(B1,A1)

的参数HYPERLINK(link_location,[friendly_name])friendly_name是可选的。

更新

/注意:仅当您希望friendly_name与URL中最后一个文本相同时,以下方法才会起作用。

假设您的数据从第 1 行开始,将其放入单元格A1并向下拖动。

=HYPERLINK(B1,IFERROR(RIGHT(B1,LEN(B1)-FIND("$",SUBSTITUTE(B1,"/","$",LEN(B1)-LEN(SUBSTITUTE(B1,"/",""))))),B1))

现在来解释一下!

LEN(B1)-LEN(SUBSTITUTE(B1,"/","")

SUBSTITUTE参数(text,old_text,new_text,[instance_num])中instance_num是可选的。

SUBSTITUTE由于我们没有提供 instance_num 参数,因此将字符串中的所有/字符替换为空字符串。使用 ,LEN我们得到字符串的长度减去不带 的字符串的长度,这/给出了发生的次数/,对于您的 OP 来说,该次数为 4。

SUBSTITUTE(B1,"/","$",4)

在这种情况下,我们使用可选的第四个参数(我使用来自 OP 的先前结果的数字本身作为此示例)。这只会将最后一次出现的 替换/为标签$,该标签应该是某个永远不会成为字符串一部分的字符。您的 OP 结果将是“http://主机:1234/svn$product_a”

LEN(B1)-FIND("$","http://host:1234/svn$product_a") 21

FIND参数是(find_text,within_text,[start_num]),我们不需要使用可选的 start_num 参数,因为如果我们选择了正确的标签,则只有一个。(再次,我在此使用来自 OP 的先前结果中的字符串仅用于此示例)。

字符串的长度 (30) 减去标签的位置 (21) 得出最后一个/(9) 之后的文本的长度。

RIGHT为您提供字符串最右边的 9 个字符的文本字符串。

IFERROR将其包装在错误检查中。如果没有错误,您将获得计算结果。如果此错误(例如,和函数要处理的/字符串中没有),则它将返回文本。FINDSUBSTITUTEB1

最后,该函数将使用上述计算得出的friendly_nameHYPERLINK从URL创建一个链接。B1

这种查找分隔符后的最后一个字符的方法并不是我想出来的,但是到处都是,而且我已经用了很长时间,以至于我不知道该把它归功于谁!

(一旦我想到这一点,我就必须添加它:)希望它有所帮助。)

相关内容