【问题标题】:Excel (2016) recursive concatenation and hyperlinksExcel (2016) 递归连接和超链接
【发布时间】:2021-07-13 21:39:35
【问题描述】:

我有一个 Excel 表格,可以计算船的距离、速度和方位,以度、分和秒为单位(我用它来跟踪比赛和朋友)。该表最多支持 5000 个点。我想添加一个带有www.windy.com 超链接的列来绘制风网站中的点。

我已经有一个创建超链接的连接公式,但我自己添加了每个值。

第一。 =HIPERVINCULO(CONCATENAR("https://www.windy.com/distance/";U5;",";V5;";";U6;",";V6);"Windy")

第二。 =HIPERVINCULO(CONCATENAR("https://www.windy.com/distance/";U5;",";V5;";";U6;",";V6;";";U7;","; V7);"有风")

第三。 =HIPERVINCULO(CONCATENAR("https://www.windy.com/distance/";U5;",";V5;";";U6;",";V6;";";U7;","; V7;";";U8;",";V8);"有风")

第四。 =HIPERVINCULO(CONCATENAR("https://www.windy.com/distance/";U5;",";V5;";";U6;",";V6;";";U7;","; V7;";";U8;",";V8;";";U9;",";V9);"Windy") 等等

该链接使用 V 和 W 列中的值,因为 windy 需要带小数点而不是小数逗号的值。

这是桌子

enter image description here

我面临的问题是如何自动/递归添加插入的点。现在我将新点添加到连接/超链接公式中。但我希望有一个例程/算法来自动在每一行中进行连接,直到最后一行(第 5004 行)。

非常感谢。

PS。如果有人认为想要 Excel 表或觉得它有用,我可以发送一份。

05.07.21 10:13

  Hi all, thanks Ron Rosenfeld and EEM for your answers. EEM the formula you gave me worked perfectly. Thanks a looot. I only had to do minor change. But now I'm facing a different problem. Sorry.

现在的问题是 255 个字符的超链接限制。 15 次迭代后,公式不再起作用,我只得到#¡VALOR! #VALUE!。

在再次询问之前我一直在尝试,但没有运气。似乎是用 VBA 解决这种“行为”的一种方法,但我想不通。

由于 Rosenfeld 先生需要更多信息,这里是使用的公式。

Table: image with data

正如您在 W 列中看到的那样,有一个链接指向我开始使用的不断增长的公式。 EEM提供的公式在AA列。

小数点纬度 ROWS L5:L5004 =IF(D5="","",IF(G5="S",(-1*(D5+E5/60+F5/3600)),(D5+E5/60+F5/3600 )))

十进制经度 ROWS M5:M5004 =IF(H5="","",IF(K5="W",(-1*(H5+I5/60+J5/3600)),(H5+I5/60+J5/3600 )))

www.windy.com 使用 .作为小数分隔符,

将 Excel 更改为有风的。

ROWS U5:U5004 =SUBSTITUTE(LEFT(L5,6),",",".")

ROWS V5:V5004 =SUBSTITUTE(LEFT(M5,7),",",".")

创建超链接的公式(感谢 EEM 一百万)

ROW AA5 = HYPERLINK(CONCATENATE("https://www.windy.com/distance/", $X5, ",", $Y5),CONCATENATE($X5, ",", $Y5))

ROW AA6:AA5004 = IF(U6=0,"",HYPERLINK(CONCATENATE("https://www.windy.com/distance/", AA5, ";", $X6, ",", $ Y6 ), 连接(AA5, ";", $X6, ",", $Y6 ) ))

如前所述,经过 14 次迭代后,超链接的长度超过了 255 个字符。

www.windy.com格式创建路线经纬度;

https://www.windy.com/distance/20.31,-60.52;22.05,-61.36;23.03,-61.73;25.20,-61.10;26.17,-62.82;27.06,-62.62?22.973,-61.669,7

用于计算距离和方位的公式(以防万一有人需要)

距离 =IF(L6="","",(6371*ACOS(COS(弧度(90-L5))*COS(弧度(90-L6))+SIN(弧度(90-L5))*SIN(弧度( 90-L6))*COS(弧度(M5-M6))))*0.539956)

轴承 =IF(P6=0,"",IF(L6="","",DEGREES(MOD(ATAN2((COS(RADIANS(L5)))*SIN(RADIANS(L6)))-(SIN(RADIANS(L5 ))*COS(RADIANS(L6))*COS(RADIANS(M6-M5))), SIN(RADIANS(M6-M5))COS(RADIANS(L6))),2PI( )))))

感谢大家的时间和知识。

13.07.21。没运气。我一直无能为力。但是我在 OPEN OFFICE 中打开了文件,并且稍微格式化了一下它就可以完美地工作了。

Excel 中 255 个字符的限制很烦人,但我不会再想破脑袋了。

非常感谢EEm。

【问题讨论】:

  • 我建议您在 Power Query 或 VBA 中执行此操作。然后,您可以使用以点格式而不是逗号作为十进制格式的数字创建字符串。 由于您的图像上没有列字母,我很难准确说出您在使用公式做什么;也不是输出字符串应该是什么样子的示例。

标签: excel excel-formula


【解决方案1】:

建议的公式使用HYPERLINK functionfriendly_name 参数来保存每一行的latitudlongitud 的累积串联,以便传递到下一行公式。 要在单元格中显示单词Windy,请使用此Number Format 格式化单元格:;;;"Wendy"

  1. [Y5]中输入这个公式:
    = HIPERVINCULO(
    CONCATENAR( "https://www.windy.com/distance/"; $U5; ","; $V5 );
    CONCATENAR( $U5; ","; $V5 ) )

  2. [Y6] 中输入这个公式: = HIPERVINCULO(
    CONCATENAR( "https://www.windy.com/distance/"; Y5; ","; $U6; ","; $V6 );
    CONCATENAR( Y5; ","; $U6; ","; $V6 ) )

  3. [Y6]中的公式复制到[Y7:Y5004]

  4. 格式范围[Y5:Y5004] 与 NumberFormat:;;;"Wendy"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    相关资源
    最近更新 更多