Zauważyłem, że "EXEC MySproc," & "arg, " & "arg2"
jest to w zasadzie to samo, co =CONCATENATE("EXEC MySproc,", "arg,", "arg2")
włączenie umiejętności korzystania z ocen, funkcji etecetera. Jaki jest przykład użycia =CONCATENATE()
vs &
?
microsoft-excel
Taylor Ackley
źródło
źródło
CONCATENATE()
i&
są wewnętrznie realizowane w różny sposób w programie Excel?Odpowiedzi:
To jest dla ludzi, którzy lubią pisać więcej. Prawdopodobnie ta sama publiczność, która robi takie rzeczy
=Sum((A1*A2)-A3)
zamiast=(A1*A2)-A3
. (Tak, ci ludzie istnieją i nie wiem, dlaczego to robią)Zapewnia również wspaniałe możliwości utworzenia pierwszej funkcji zdefiniowanej przez użytkownika za pomocą VBA, aby stworzyć coś bardziej użytecznego niż Concatenate ().
Excel 2016 (z subskrypcją Office 365) ma nową funkcję o nazwie TextJoin () , która przyjmuje argumenty i zakres jako argumenty i jest znacznie szybsza niż wpisywanie ampersandów i separatorów jako ciągów tekstowych. Teraz TO jest przydatne.
źródło
=Sum(A1,A2)
(jako alternatywy dla=A1+B1
)?=A1+A2
ale z jakiegoś powodu piszą=Sum(A1+A1)
. Lub=Sum(A1-A2)
gdzie mogliby nas=A1-A2
. Lub=Sum(A1*A2)
gdzie mogliby użyć=A1*A2
. Niektórzy ludzie umieszczają wszelkiego rodzaju formuły w funkcji Sum () i próbuję zrozumieć, dlaczego.Prawdopodobnie dlatego, że używają przycisku Wstaw funkcję.
Czasami robię to, gdy jem lewą ręką i po prostu robię jakieś formuły niskiego poziomu lub gdy używam urządzenia dotykowego i nie mogę sobie pozwolić na przełączanie między symbolami, literami i cyframi na ekranie dotykowym .
źródło
.
dla perla, potok||
dla SQL, brak znaków dla cmd i bash,+
dla Java. Czy naprawdę potrzebuję&
tylko programu Excel?.
,||
a+
potem pamiętasz&
. To łatwiejsze niżconcatenate
, szczególnie. jeśli ktoś nie jest biegły w języku angielskim. Jest również używany w VBAVERKETTEN
W niemieckim Excelu)Ma to wyłącznie względy historyczne i kompatybilności. Poprzednie wersje programu Excel nie obsługiwały jednego formatu, a inne narzędzia do arkuszy kalkulacyjnych (takie jak Dokumenty Google, Numery Apple lub Open Office) nie obsługiwały drugiego.
Wybierz, co wolisz.
Pamiętaj, że w zależności od formatu zapisu program Excel potrzebuje więcej miejsca do zapisania
CONCATENATE()
niż&
.źródło
&
to zamiennikCONCATENATE
. Rzadko używam programu Excel, ale kiedy to robię, zwykle jest to coś, co wymaga konkatenacjiMoim zdaniem selektywne stosowanie konkatenatu i ampersand może prowadzić do wyraźniejszych formuł.
To powiązanie z danymi adresowymi, stosując mieszaninę z
CONCATENATE
a&
wydaje mi się jaśniej:Niż wyłączne wykorzystanie
&
:I wyłączne wykorzystanie
CONCATENATE
Z drugiej strony twierdzę, że takie UDF
BuildAddress
byłoby lepszym rozwiązaniem (i byłoby lepiej przygotowane do obsługi subtelności formatowania adresów w domenach internacjonalizacji - chociaż tego nie zaimplementowałem) ...Ale być może kolejnym przykładem, że obejmuje stosowanie
&
w dosłownym strun, lepiej pokazuje trudność czytania formułę, która sama dba siły do wyłącznie używać operatorów:Może być lepiej napisany jako:
Ale liczy się wydajność , a zależnie od liczby konkatenowanych argumentów i długości każdego argumentu
CONCATENATE
funkcja wydaje się przewyższać operator konkatenacji od 4 do 6. Trzeba przyznać, że ten przykład jest ekstremalny, z Łączono 255 argumentów, 10 000 razy. Nie zaleca się używania łańcucha argumentów o długości większej niż 32, ponieważ może zabraknąć pamięci / awarii programu Excel.Oto prosty mechanizm pomiaru czasu:
I wyniki, zgodnie z długością ciągów argumentów:
Ale nawet nie rozmawialiśmy o słoniu w pokoju. Budujesz polecenie SQL za pomocą konkatenacji. Nie rób tego Wykonujesz procedurę składowaną, która akceptuje parametry. O ile nie zdezynfekowałeś danych wejściowych (i domyślam się, że tego nie zrobiłeś), budowanie łańcucha SQL za pomocą konkatenacji wymaga ataku typu SQL-injection. Równie dobrze możesz wystawić UDF o nazwie
JohnnyDropTables
...źródło
Jest to różnica domen semantycznych. Concatenate to nazwa funkcji arkusza kalkulacyjnego. Ampersand jest operatorem konkatenacji zapożyczonym z Visual Basic. Ludzie, którzy nigdy nie otwierają używają VBA, znaleźliby funkcję o wiele łatwiejszą w użyciu niż składnia VBA. Jest to ten sam powód, dla którego istnieje klawisz skrótu, ikona i opcja menu do zapisania, co ułatwia korzystanie z oprogramowania.
źródło
Używam obu.
W przypadku długich list, które mogą wymagać przeglądu wizualnego, przecinek zajmuje mniej miejsca niż znak ampersand.
Łatwiej jest odczytać listę komórek oddzielonych przecinkami niż oddzielonych znakami ampersand, zwłaszcza, że znak ampersand (po 15 godzinach dnia) wygląda zbyt podobnie do $.
Zapewnia to znaczącą rolę CONCATENATE.
Ale - zgadzam się - nie ma korzyści prędkości ani żadnej różnicy funkcjonalnej.
źródło
Jednym szczególnym przypadkiem użycia jest to, że=CONCATENATE(A1:A10)
jest znacznie krótszy niż=A1&A2&A3&A4&A4&A6&A7&A8&A9&A10
. Jest również znacznie bardziej poprawny (w rzeczywistości przykładowa&
wersja ma celowy błąd).Próbowałem tego pierwszy, ale korzystałem z biurowego programu Excel, który jest w języku niemieckim.
TEXTKETTE
zachowuje się tak, jak opisałem, ale dokumentacja pokazuje, że jest to funkcja newish i zastępujeVERKETTEN
(która będzie niemieckim odpowiednikiemCONCATENATE
).źródło
CONCATENATE
formularz jest w oczywisty sposób poprawny. Jeśli chcesz połączyć wszystkie elementy zakresu, podanie zakresu jest znacznie mniej podatne na błędy niż podanie każdego elementu jeden po drugim.&
formularza ma celowy błąd.=CONCATENATE(A1:A10)
nie działa w programie Excel. Jeśli masz taką funkcję, jest to niestandardowy UDF, a nie natywny Excel. Ale nie może to być UDF o tej samej nazwie co funkcja natywna.SUM
i operatorów podobnych+
, ale nie dotyczyCONCATENATE
funkcji programu Excel . nigdy nie=CONCATENATE(A1:A2)
jest taki sam, jak=A1&A2
=CONCATENATE(A1:A10)
daje wynikA1
, więc jest oczywiście nie tylko krótszy, ale innyNie widziałem tutaj prawdziwych odpowiedzi, ale mam wgląd. (dla każdego, kto może w przyszłości wyszukać tę odpowiedź)
„Concatenate” to starsza, starsza funkcja, która robi te same czynności, co „&”, „&” dodano później dla zachowania spójności w językach programowania. Jednak „Concatenate” został zastąpiony przez „Concat” w celu obsługi zakresów, dzięki czemu można łączyć A1: A10 bez potrzeby tworzenia własnych skryptów. „&” Nadal nie zezwala na zakres i bierze pierwszą komórkę w ten sam sposób, co funkcje „konkatenacji”. Więc łącząc zakres, „Concat” daje tę dodatkową zmianę funkcji w stosunku do poprzednich 2 stylów, które są po prostu inaczej zakodowane. Określanie „Połącz” i „&” w zasadzie jako preferencję, gdy używasz nieciągłych wymaganych ciągów łączonych na temat tego, jak chcesz to pisać.
https://support.office.com/en-ie/article/concat-function-9b1a9a3f-94ff-41af-9736-694cbd6b4ca2
źródło
RTFM Microsoft mówi używać
&
.BTW, otrzymasz różne odpowiedzi, korzystając z operatora SUM.
źródło
=
alternatywy - wprowadzanie funkcji takich jak@CONCATENATE(A1,A2)
i obliczenia takie jak+A5+A6
lub-A5+A6
.