Percebi que "EXEC MySproc," & "arg, " & "arg2"
é essencialmente o mesmo que =CONCATENATE("EXEC MySproc,", "arg,", "arg2")
incluir a capacidade de usar avaliações, funções etc. Qual é a maneira de usar o =CONCATENATE()
vs &
?
microsoft-excel
Taylor Ackley
fonte
fonte
CONCATENATE()
e&
são internamente implementada de forma diferente no Excel?Respostas:
É para pessoas que gostam de digitar mais. Provavelmente o mesmo público que faz as coisas, em
=Sum((A1*A2)-A3)
vez de=(A1*A2)-A3
. (Sim, essas pessoas existem, e eu não sei por que elas fazem isso)Ele também oferece oportunidades maravilhosas para criar sua primeira função definida pelo usuário com o VBA para criar algo mais útil que Concatenate ().
O Excel 2016 (com uma assinatura do Office 365) possui uma nova função chamada TextJoin () , que usa um delimitador e um intervalo como argumentos e é muito mais rápido do que digitar os "e" comercial e os delimitadores como cadeias de texto. Agora, isso é útil.
fonte
=Sum(A1,A2)
(como alternativa=A1+B1
)?=A1+A2
mas por algum motivo, eles escrevem=Sum(A1+A1)
. Ou=Sum(A1-A2)
onde eles poderiam nos=A1-A2
. Ou=Sum(A1*A2)
onde eles poderiam usar=A1*A2
. Algumas pessoas colocam todos os tipos de fórmulas em uma função Sum () e estou tentando entender o porquê.Provavelmente é porque eles estão usando o botão Inserir Função.
Às vezes, faço isso quando estou comendo com a mão esquerda e apenas fazendo algumas fórmulas de baixo nível, ou quando estou usando um dispositivo de toque e não me incomodo em alternar entre símbolos, letras e números na tela de toque .
fonte
.
para perl, pipe||
para SQL, nenhum caractere para cmd e bash,+
para Java. Eu realmente preciso&
apenas do Excel?.
,||
e+
então se lembra&
. É mais fácil do queconcatenate
, esp. se alguém não é muito fluente em inglês. Também é usado em VBAVERKETTEN
em alemão Excel)Possui apenas razões históricas e de compatibilidade. As versões anteriores do Excel não eram compatíveis com um formato e outras ferramentas de planilha (como Google Docs, Apple Numbers ou Open Office) não eram compatíveis com o outro.
Escolha o que você preferir.
Observe que, dependendo do seu formato salvo, o Excel precisa de mais espaço para economizar do
CONCATENATE()
que&
.fonte
&
era o substitutoCONCATENATE
até agora. Eu raramente usar o Excel, mas quando eu faço normalmente é algo que precisa concatenaçãoNa minha opinião, o uso seletivo de concatenar e comercial, pode levar a fórmulas mais claras.
Essa concatenação dos detalhes do endereço, usando uma mistura de
CONCATENATE
e&
me parece mais clara:Do que o uso exclusivo de
&
:E o uso exclusivo de
CONCATENATE
Por outro lado, eu argumentaria que uma UDF como
BuildAddress
seria uma solução melhor (e estaria melhor posicionada para lidar com as sutilezas da formatação de endereços nos domínios da internacionalização - embora eu não tenha implementado isso) ...Mas talvez outro exemplo, que inclua o uso de
&
dentro da string literal, demonstre melhor a dificuldade de ler uma fórmula que se obriga a usar exclusivamente operadores:Pode ser melhor escrito como:
Mas o desempenho é o que importa e, dependendo do número de argumentos que estão sendo concatenados e do tamanho de cada argumento, a
CONCATENATE
função parece superar o operador de concatenação por um fator entre 4 e 6. É certo que este exemplo é extremo, com 255 argumentos sendo concatenados, 10.000 vezes. Eu não recomendo o uso de um comprimento de seqüência de caracteres maior que 32, ou você pode ficar sem memória / travar o Excel.Aqui está um mecanismo de tempo bruto:
E os resultados, de acordo com o comprimento das sequências de argumentos:
Mas então, nem discutimos o elefante na sala. Você está construindo um comando SQL usando concatenação. Não faça isso. Você está executando um procedimento armazenado que aceita parâmetros. A menos que você tenha higienizado suas entradas (e acho que não), a construção de uma string SQL usando concatenação está pedindo um ataque de injeção de SQL. Você também pode expor uma UDF chamada
JohnnyDropTables
...fonte
É uma diferença de domínio semântico. Concatenar é o nome de uma função de planilha. O Ampersand é um operador de concatenação emprestado do Visual Basic. Pessoas que nunca abrem o uso do VBA acham uma função muito mais fácil de usar do que a sintaxe do VBA. É a mesma razão pela qual há uma tecla de atalho, um ícone e uma opção de menu para salvar, o que facilita o uso do software.
fonte
Eu uso os dois.
Para listas longas que talvez eu precise revisar visualmente, uma vírgula ocupa menos espaço nos olhos do que um e comercial.
É mais fácil ler uma lista de células separadas por vírgulas do que por e comercial, especialmente porque um e comercial se parece (depois de 15 horas por dia) com um valor muito alto.
Isso fornece um papel significativo para CONCATENATE.
Mas - concordo - não há benefício de velocidade ou diferença funcional.
fonte
Um caso de uso específico=CONCATENATE(A1:A10)
é muito menor que=A1&A2&A3&A4&A4&A6&A7&A8&A9&A10
. Também é muito mais obviamente correto (na verdade, a&
versão de exemplo tem um erro deliberado).Eu tentei isso primeiro, mas estava usando o escritório Excel, que está em alemão.
TEXTKETTE
se comporta como eu descrevo, mas a documentação mostra que é uma função nova e substituiVERKETTEN
(que será o equivalente alemão deCONCATENATE
).fonte
CONCATENATE
formulário está mais obviamente correto. Se você deseja concatenar todos os elementos de um intervalo, fornecer o intervalo é muito menos propenso a erros do que fornecer cada elemento um por um.&
formulário tem um erro deliberado.=CONCATENATE(A1:A10)
não funciona no Excel. Se você tem essa função, é uma UDF personalizada, não um Excel nativo. Mas não pode ser um UDF com o mesmo nome que a função nativa.SUM
e como operadores+
, mas não se aplica àCONCATENATE
função do Excel . nunca=CONCATENATE(A1:A2)
é o mesmo resultado que=A1&A2
=CONCATENATE(A1:A10)
dá o resultado deA1
, então obviamente não é apenas mais curto, mas diferenteNão vi as respostas verdadeiras aqui, mas tenho algumas dicas. (para qualquer pessoa que possa, no futuro, procurar esta resposta)
"Concatenar" é uma função legada mais antiga, que faz as mesmas coisas que o "&", "&" foi adicionado posteriormente para consistência nas linguagens de programação. No entanto, "Concatenar" foi substituído por "Concat" para oferecer suporte a intervalos, para que você possa combinar A1: A10 sem precisar de nenhum script personalizado. O "&" ainda não permite um intervalo e leva apenas a primeira célula da mesma maneira que as funções "Concatenar". Portanto, se você combinar um intervalo, o "Concat" oferecerá essa alteração extra de função nos 2 estilos anteriores, que são codificados de maneira diferente. Tornar "Concatenar" e "&" essencialmente uma preferência ao usar strings combinadas necessárias sem alcance sobre como você deseja digitá-lo.
https://support.office.com/pt-br/article/concat-function-9b1a9a3f-94ff-41af-9736-694cbd6b4ca2
fonte
RTFM A Microsoft diz que usa o
&
.BTW, você obterá respostas diferentes ao usar o operador SUM.
fonte
=
alternativas - inserir funções como@CONCATENATE(A1,A2)
e cálculos como+A5+A6
ou-A5+A6
.