Crie muitas células com hiperlink com conteúdo de texto legível em vez de URL literal

2

De um modo geral, estou tentando criar uma planilha do MS Excel com centenas de linhas de URLs relacionados. Column Adeve conter texto legível por humanos, mas o texto da célula está vinculado a um URL HTTP. Column Bdeve conter um URL HTTP literal de texto sem formatação (isso pode ou não ser vinculado ao URL aparente, não importa). Column Ce ter conteúdo de texto simples. A planilha teria a seguinte aparência:

| Produto A | http: // host: 1234 / svn / product_a | outros dados ... |
| Produto B | http: // host: 1234 / svn / product_b | outros dados ... |
| Produto C | http: // host: 1234 / svn / product_c | outros dados ... |

Observe que o URL com hiperlink e o texto sem formatação estão relacionados, mas são diferentes!

Atualmente, tenho um script bash+ sedgerando essa lista exaustiva de repositórios usando simples substituição de regex para os URLs, mas não consigo encontrar nenhum documento do MS Excel sobre como representar em texto sem formatação uma célula com texto com hiperlink (ideal para copiar e colar em a planilha).

Se eu estivesse gerando algum tipo de marcação como HTML, seria trivial; mas, infelizmente, há colunas adicionais que precisam estar disponíveis para outros não desenvolvedores editarem regularmente.

Existe alguma maneira de criar uma Column Acélula usando apenas texto simples copiado na célula?

E desculpe pelo título terrível, não estou familiarizado com o MS Excel ou seu jargão

novo
fonte

Respostas:

1

Se a coluna B já contém o URL e a coluna A contém seu URL de texto sem formatação, tente isso na célula C1. (Isso pressupõe que você pode inserir uma coluna C para esse uso sem atrapalhar sua organização. A outra opção é digitar o nome do texto sem formatação em cada fórmula na coluna A.)

=HYPERLINK(B1,A1)

Os parâmetros para HYPERLINKsão (link_location,[friendly_name])onde friendly_name é opcional.

ATUALIZAR

NOTA: A abordagem a seguir funcionará apenas se você desejar que o nome_ amigável seja o mesmo que o texto após o último /no seu URL.

Supondo que seus dados iniciem na linha 1, coloque-os na célula A1e arraste-os para baixo.

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

Agora, para a explicação!

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

SUBSTITUTEOs parâmetros são (text,old_text,new_text,[instance_num])onde instance_num é opcional.

SUBSTITUTEsubstitui todos os /caracteres da string por uma string vazia, pois não fornecemos um parâmetro instance_num. Com o LENnós obtemos o comprimento da string menos o comprimento da string sem o /qual nos fornece o número de vezes que /ocorre, o que seria 4 para o seu OP.

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

Nesse caso, estamos usando o quarto parâmetro opcional (estou usando o próprio número do resultado anterior aqui do OP apenas para este exemplo). Isso substituirá apenas a última ocorrência de /por uma tag $, que deve ser um caractere que nunca faria parte da sua string. O resultado do seu OP seria " http: // host: 1234 / svn $ product_a"

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

FINDparâmetros são (find_text,within_text,[start_num])e não precisamos usar o parâmetro start_num opcional, pois se escolhermos a tag correta, haverá apenas uma. (Mais uma vez, estou usando a string do resultado anterior aqui do OP apenas para este exemplo).

O comprimento da string (30) menos a localização da tag (21) fornece o comprimento do texto após o último /(9).

RIGHT fornece a sequência de texto com os 9 caracteres mais à direita na sequência.

IFERRORenvolve isso em uma verificação de erro. Se não houver erro, você obtém o resultado do cálculo. Se esses erros, como no /na cadeia de caracteres para as funções FINDe SUBSTITUTEfuncionarem, ele retornará texto B1.

E, finalmente, a HYPERLINKfunção criará um link a partir da URL B1com o nome_ amigável que resulta dos cálculos acima.

Essa maneira de encontrar os últimos caracteres após o delimitador não é algo que eu descobri, mas está em todo lugar e eu uso há tanto tempo que não sei a quem creditá-lo!

(Depois que pensei nisso, eu apenas tive que adicioná-lo :) Espero que ajude.)

Rey Juna
fonte
Obrigado pelos detalhes, demonstra funcionalidade suficiente para que eu possa adaptá-lo às minhas coisas. Eu vou atualizar quando eu tenho resultados
ardnew
Sim, gostaria de saber sobre sua implementação.
Rey Juna