Noté que "EXEC MySproc," & "arg, " & "arg2"
es esencialmente lo mismo que =CONCATENATE("EXEC MySproc,", "arg,", "arg2")
incluir la capacidad de usar evaluaciones, funciones etecetera. ¿Cuál es el caso de uso para usar =CONCATENATE()
vs &
?
microsoft-excel
Taylor Ackley
fuente
fuente
CONCATENATE()
y&
se implementan internamente de manera diferente en Excel?Respuestas:
Es para las personas que les gusta escribir más. Probablemente la misma audiencia que hace cosas como en
=Sum((A1*A2)-A3)
lugar de=(A1*A2)-A3
. (Sí, estas personas existen, y no sé por qué lo hacen)También brinda maravillosas oportunidades para crear su primera función definida por el usuario con VBA para crear algo más útil que Concatenate ().
Excel 2016 (con una suscripción a Office 365) tiene una nueva función llamada TextJoin () , que toma un delimitador y un rango como argumentos y es mucho más rápido que escribir los símbolos y los delimitadores como cadenas de texto. Ahora, eso es útil.
fuente
=Sum(A1,A2)
(como alternativa a=A1+B1
)?=A1+A2
pero por alguna razón, escriben=Sum(A1+A1)
. O=Sum(A1-A2)
donde nos pudieron=A1-A2
. O=Sum(A1*A2)
donde podrían usar=A1*A2
. Algunas personas ponen todo tipo de fórmulas en una función Sum () y estoy tratando de entender por qué.Probablemente sea porque están usando el botón Insertar función.
A veces hago esto cuando estoy comiendo con la mano izquierda y solo estoy haciendo algunas fórmulas de bajo nivel, o cuando estoy usando un dispositivo táctil y no me molesto en cambiar entre los símbolos, letras y números en la pantalla táctil .
fuente
.
para perl, pipe-pipe||
para SQL, no char para cmd y bash,+
para Java. ¿Realmente necesito&
solo para Excel?.
,||
y+
luego puedes recordarlos&
. Es más fácil queconcatenate
, especialmente. si uno no habla inglés con fluidez. También se usa en VBAVERKETTEN
en Excel alemán)Tiene solo razones históricas y de compatibilidad. Las versiones anteriores de Excel no admitían un formato, y otras herramientas de hoja de cálculo (como Google Docs, Apple Numbers u Open Office) no admitían el otro.
Elige el que prefieras.
Tenga en cuenta que, según su formato de guardado, Excel necesita más espacio para guardar
CONCATENATE()
que&
.fuente
&
era el reemplazoCONCATENATE
hasta ahora. Yo rara vez uso de Excel, pero cuando lo hago por lo general es algo que necesita la concatenaciónEn mi opinión, el uso selectivo de concatenate y ampersands, puede conducir a fórmulas más claras.
Esta concatenación de detalles de dirección, usando una mezcla de
CONCATENATE
y me&
parece más clara:Que el uso exclusivo de
&
:Y el uso exclusivo de
CONCATENATE
Por otra parte, diría que un UDF como
BuildAddress
sería una mejor solución (y estaría mejor ubicado para manejar las sutilezas del formato de direcciones en dominios de internacionalización, aunque no lo he implementado) ...Pero quizás otro ejemplo, que incluye el uso de
&
dentro del literal de cadena, demuestre mejor la dificultad de leer una fórmula que se obliga a usar exclusivamente operadores:Podría escribirse mejor como:
Pero el rendimiento es lo que importa, y dependiendo del número de argumentos que se concatenan y la longitud de cada argumento, la
CONCATENATE
función parecería superar al operador de concatenación en un factor de entre 4 y 6. Es cierto que este ejemplo es extremo, con 255 argumentos siendo concatenados, 10,000 veces. No recomiendo usar una longitud de cadena de argumento mayor que 32, o puede quedarse sin memoria / bloquear Excel.Aquí hay un mecanismo de tiempo crudo:
Y los resultados, de acuerdo con la longitud de las cadenas de argumentos:
Pero entonces, ni siquiera hemos discutido el elefante en la habitación. Estás construyendo un comando SQL usando concatenación. No hagas eso. Estás ejecutando un procedimiento almacenado que acepta parámetros. A menos que haya desinfectado sus entradas (y supongo que no), construir una cadena SQL usando concatenación requiere un ataque de inyección SQL. También podrías exponer un UDF llamado
JohnnyDropTables
...fuente
Es una diferencia de dominio semántico. Concatenar es el nombre de una función de hoja de cálculo. El Ampersand es un operador de concatenación prestado de Visual Basic. Las personas que nunca abren el uso de VBA encontrarían una función mucho más fácil de usar que la sintaxis de VBA. Es la misma razón por la que hay una tecla de acceso rápido, un icono y una opción de menú para guardar, lo que hace que el software sea más fácil de usar.
fuente
Yo uso ambos.
Para las listas largas que podría necesitar revisar visualmente, una coma ocupa menos espacio para los ojos que un signo de unión.
Es más fácil leer una lista de celdas separadas por comas que por ampersand, especialmente porque un ampersand se parece (después de un día de 15 horas) a un $.
Esto proporciona un papel significativo para CONCATENAR.
Pero, de acuerdo, no hay beneficio de velocidad ni diferencia funcional.
fuente
Un caso de uso particular es que=CONCATENATE(A1:A10)
es mucho más corto que=A1&A2&A3&A4&A4&A6&A7&A8&A9&A10
. También es mucho más obviamente correcto (de hecho, la&
versión de ejemplo tiene un error deliberado).Lo intenté primero, pero estaba usando la oficina Excel, que está en alemán.
TEXTKETTE
se comporta como lo describo, pero la documentación muestra que es una función nueva y reemplazaVERKETTEN
(que será el equivalente alemán deCONCATENATE
).fuente
CONCATENATE
formulario es más obviamente correcto. Si desea concatenar todos los elementos de un rango, dar el rango es mucho menos propenso a errores, que dar a cada elemento uno por uno.&
formulario tiene un error deliberado.=CONCATENATE(A1:A10)
no funciona en Excel. Si tiene esa función, es un UDF personalizado, no Excel nativo. Pero no puede ser un UDF con el mismo nombre que la función nativa.SUM
y operadores similares+
, pero no se aplica a laCONCATENATE
función de Excel . nunca=CONCATENATE(A1:A2)
es el mismo resultado que=A1&A2
=CONCATENATE(A1:A10)
da el resultado deA1
, por lo que obviamente no solo es más corto sino diferenteNo vi las respuestas verdaderas aquí, pero tengo alguna idea. (para cualquiera que pueda buscar esta respuesta en el futuro)
"Concatenar" es una función heredada más antigua, que hace lo mismo que "&", "&" se agregó más adelante para mantener la coherencia en los lenguajes de programación. Sin embargo, "Concatenate" ha sido reemplazado por "Concat" para admitir rangos, por lo que puede combinar A1: A10 sin necesidad de ningún script personalizado. El "&" aún no permite un rango y solo toma la primera celda de la misma manera que las funciones "Concatenar". Entonces, si combina un rango, el "Concat" proporciona un cambio de función adicional sobre los 2 estilos anteriores que se codifican de manera diferente. Hacer que "Concatenar" y "&" sean esencialmente una preferencia cuando se utilizan cadenas combinadas que no son de rango sobre cómo desea escribirlo.
https://support.office.com/en-ie/article/concat-function-9b1a9a3f-94ff-41af-9736-694cbd6b4ca2
fuente
RTFM Microsoft dice que use el
&
.Por cierto, obtendrá diferentes respuestas cuando utilice el operador SUM.
fuente
=
alternativas: ingresar funciones como@CONCATENATE(A1,A2)
y cálculos como+A5+A6
o-A5+A6
.