J'ai remarqué que cela "EXEC MySproc," & "arg, " & "arg2"
revient essentiellement à =CONCATENATE("EXEC MySproc,", "arg,", "arg2")
inclure la possibilité d'utiliser des évaluations, des fonctions etecetera. Quel est le cas d'utilisation pour utiliser =CONCATENATE()
vs &
?
microsoft-excel
Taylor Ackley
la source
la source
CONCATENATE()
et&
êtes-vous implémentés en interne différemment dans Excel?Réponses:
C'est pour les gens qui aiment taper plus. Probablement le même public qui fait des choses comme
=Sum((A1*A2)-A3)
au lieu de=(A1*A2)-A3
. (Oui, ces personnes existent et je ne sais pas pourquoi elles le font)Il offre également de merveilleuses opportunités pour créer votre toute première fonction définie par l'utilisateur avec VBA afin de créer quelque chose de plus utile que Concatenate ().
Excel 2016 (avec un abonnement Office 365) a une nouvelle fonction appelée TextJoin () , qui utilise un délimiteur et une plage comme arguments et qui est beaucoup plus rapide que la saisie des esperluettes et des délimiteurs sous forme de chaînes de texte. Maintenant, cela est utile.
la source
=Sum(A1,A2)
(comme une alternative à=A1+B1
)?=A1+A2
mais pour une raison quelconque, ils écrivent=Sum(A1+A1)
. Ou=Sum(A1-A2)
où ils pourraient nous=A1-A2
. Ou=Sum(A1*A2)
où ils pourraient utiliser=A1*A2
. Certaines personnes mettent toutes sortes de formules dans une fonction Sum () et j'essaie de comprendre pourquoi.C'est probablement parce qu'ils utilisent le bouton Insérer une fonction.
Je fais parfois cela quand je mange avec la main gauche et que je fais juste quelques formules à bas niveau, ou quand j'utilise un appareil tactile et que je ne pouvais pas être dérangé pour basculer entre les symboles, les lettres et les chiffres sur l'écran tactile. .
la source
.
pour Perl, de pipe-pipe||
pour SQL, pas de caractère pour cmd et bash,+
pour Java. Ai-je vraiment besoin&
juste pour Excel?.
,||
et+
vous vous souvenez&
. C'est plus facile queconcatenate
, esp. si on ne parle pas assez bien l'anglais. Il est également utilisé dans VBAVERKETTEN
en allemand Excel)Il n'y a que des raisons historiques et de compatibilité. Les anciennes versions d'Excel ne prenaient pas en charge un format et les autres outils de tableurs (tels que Google Docs, Apple Numbers ou Open Office) ne prenaient pas en charge l'autre.
Choisissez celui que vous préférez.
Notez que, selon votre format de sauvegarde, Excel nécessite plus d’espace de sauvegarde
CONCATENATE()
que&
.la source
&
c'était le remplacement pourCONCATENATE
jusqu'à présent. J'utilise rarement Excel, mais quand je le fais, c'est généralement pour quelque chose qui nécessite une concaténationÀ mon avis, l'utilisation sélective de concaténation et d' esperluettes peut conduire à des formules plus claires.
Cette concaténation des détails d'adresse, utilisant un mélange de
CONCATENATE
et&
me semble plus claire:Que l' usage exclusif de
&
:Et l'usage exclusif de
CONCATENATE
Encore une fois, je dirais qu’un type de fichier UDF
BuildAddress
serait une meilleure solution (et serait mieux placé pour gérer les subtilités du formatage des adresses dans les domaines d’internationalisation - bien que je ne l’aie pas encore implémentée) ...Mais peut-être un autre exemple, qui inclut l'utilisation de
&
dans le littéral de chaîne, démontre mieux la difficulté de lire une formule qui s'oblige à utiliser exclusivement des opérateurs:Pourrait être mieux écrit comme:
Mais la performance ce qui compte, . Selon le nombre d’arguments concaténés et la longueur de chaque argument, la
CONCATENATE
fonction semble surperformer l’opérateur de concaténation d’un facteur compris entre 4 et 6. Certes, cet exemple est extrême, avec 255 arguments étant concaténés, 10 000 fois. Je ne recommande pas d'utiliser une longueur d'argument supérieure à 32, sinon vous risquez de manquer de mémoire / de bloquer Excel.Voici un mécanisme de synchronisation grossier:
Et les résultats, en fonction de la longueur des chaînes d'argument:
Mais alors, nous n'avons même pas discuté de l'éléphant dans la pièce. Vous construisez une commande SQL en utilisant la concaténation. Ne fais pas ça. Vous exécutez une procédure stockée qui accepte les paramètres. À moins que vous n'ayez désinfecté vos entrées (et j'imagine que vous ne l'avez pas fait), créer une chaîne SQL à l'aide de la concaténation demande une attaque par injection SQL. Vous pourriez aussi bien exposer un fichier UDF appelé
JohnnyDropTables
...la source
C'est une différence de domaine sémantique. Concaténer est le nom d'une fonction de feuille de calcul. L'esperluette est un opérateur de concaténation emprunté à Visual Basic. Les personnes qui n'ouvrent jamais utilisent VBA trouveraient une fonction beaucoup plus facile à utiliser que la syntaxe VBA. C'est la même raison pour laquelle il existe un raccourci clavier, une icône et une option de menu pour enregistrer, ce qui facilite l'utilisation du logiciel.
la source
J'utilise les deux.
Pour les longues listes que je devrais peut-être examiner visuellement, une virgule occupe moins d'espace pour les yeux qu'une esperluette.
Il est plus facile de lire une liste de cellules séparées par des virgules que par des esperluettes, d’autant plus qu’une esperluette ressemble trop (après 15 heures par jour) à un $.
Cela donne un rôle significatif à CONCATENATE.
Mais, d'accord, il n'y a pas d'avantage en termes de vitesse, ni de différence fonctionnelle.
la source
Un cas d'utilisation particulier est qu'il=CONCATENATE(A1:A10)
est beaucoup plus court que=A1&A2&A3&A4&A4&A6&A7&A8&A9&A10
. C'est aussi beaucoup plus évidemment correct (en fait, la&
version d' exemple comporte une erreur délibérée).J'ai d'abord essayé cela, mais j'utilisais Excel, qui est en allemand.
TEXTKETTE
se comporte comme je le décris, mais la documentation montre qu’il s’agit d’une fonction nouvelle, et remplaceVERKETTEN
(qui sera l’équivalent allemand deCONCATENATE
).la source
CONCATENATE
forme est plus clairement correcte. Si vous souhaitez concaténer tous les éléments d'une plage, donner une plage est beaucoup moins sujet aux erreurs que de donner chaque élément un par un.&
forme a une erreur délibérée.=CONCATENATE(A1:A10)
ne fonctionne pas dans Excel. Si vous disposez d'une telle fonction, il s'agit d'une UDF personnalisée, et non d'Excel natif. Mais il ne peut pas s'agir d'une fonction utilisateur avec le même nom que la fonction native.SUM
et des opérateurs comme+
, mais il ne s'applique pas à laCONCATENATE
fonction Excel .=CONCATENATE(A1:A2)
n'est jamais le même résultat que=A1&A2
=CONCATENATE(A1:A10)
donne le résultat deA1
, donc c'est évidemment non seulement plus court mais différentJe n'ai pas vu les vraies réponses ici, mais j'ai un aperçu. (pour toute personne susceptible de rechercher cette réponse à l'avenir)
"Concaténer" est une ancienne fonction héritée, qui fait la même chose que "&", "&" a été ajouté ultérieurement pour des raisons de cohérence dans les langages de programmation. Toutefois, "Concatenate" a été remplacé par "Concat" pour prendre en charge les plages. Vous pouvez donc combiner le format A1: A10 sans recourir à un script personnalisé. Le "&" n'autorise toujours pas de plage et ne prend que la première cellule de la même manière que les fonctions "Concaténation". Donc, si vous combinez une plage, le "Concat" donne ce changement de fonction supplémentaire par rapport aux 2 styles précédents qui sont simplement codés différemment. Faire de "Concaténer" et "&" une préférence lorsque vous utilisez des chaînes combinées non comprises dans la plage requise pour la façon dont vous aimez le taper.
https://support.office.com/en-ie/article/concat-function-9b1a9a3f-94ff-41af-9736-694cbd6b4ca2
la source
RTFM Microsoft dit utiliser le
&
.BTW, vous obtiendrez des réponses différentes lorsque vous utiliserez l’opérateur SUM.
la source
=
alternatives - en entrant des fonctions comme@CONCATENATE(A1,A2)
et des calculs comme+A5+A6
ou-A5+A6
.