Jak zbudować następujący ciąg w formule Excela:
Maurice „The Rocket” Richard
Jeśli używam pojedynczych cudzysłowów, jest to banalne = "Maurice 'The Rocket' Richard"
ale co z podwójnymi cudzysłowami?
Jak zbudować następujący ciąg w formule Excela:
Maurice „The Rocket” Richard
Jeśli używam pojedynczych cudzysłowów, jest to banalne = "Maurice 'The Rocket' Richard"
ale co z podwójnymi cudzysłowami?
Odpowiedzi:
Alternatywnie możesz użyć CHAR
funkcji:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
&
pomocą podwójnego cudzysłowu tuż przed lub tuż po ampersand nie działało przy użyciu metody podwójnego cudzysłowu.
Trzy podwójne cudzysłowy: " " " x " " "
= "x"
Excel automatycznie zmieni się w jeden podwójny cudzysłów. na przykład:
=CONCATENATE("""x"""," hi")
= "x" cześć
Używam do tego funkcji (jeśli skoroszyt ma już VBA).
Function Quote(inputText As String) As String
Quote = Chr(34) & inputText & Chr(34)
End Function
Pochodzi z książki Sue Mosher „Programowanie w programie Microsoft Outlook”. Wtedy twoja formuła byłaby:
="Maurice "&Quote("Rocket")&" Richard"
Jest to podobne do tego, co napisał Dave DuPlantis .
W przypadku, gdy musisz to zrobić za pomocą JSON:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
czy to zadziała dla makr przy użyciu, .Formula = "=THEFORMULAFUNCTION("STUFF")"
więc będzie tak: będzie działać dla makr przy użyciu.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
Zwracanie pustego lub zerowego ciągu (np. ""
), Aby komórka wyglądała na pustą, jest powszechną praktyką w formule arkusza roboczego, ale odtwarzanie tej opcji podczas wstawiania formuły przez Range.Formula lub Range.FormulaR1C1 w VBA jest niewygodne ze względu na konieczność podwojenia znaków cudzysłowu w ciągu cytowanym.
Natywna funkcja TEKSTU arkusza roboczego może dawać ten sam wynik bez użycia cudzysłowów.
'formula to insert into C1 - =IF(A1<>"", B1, "")
range("C1").formula = "=IF(A1<>"""", B1, """")" '<~quote chars doubled up
range("C1").formula = "=IF(A1<>TEXT(,), B1, TEXT(,))" '<~with TEXT(,) instead
Moim zdaniem użycie TEXT(,)
zamiast ""
oczyszcza nawet prostą formułę taką jak powyższa. Korzyści stają się coraz bardziej znaczące, gdy są stosowane w bardziej skomplikowanych formułach, takich jak praktyka dodawania pustego ciągu do WYSZUKAJ.PIONOWO, aby uniknąć zwracania zera do komórki, gdy wyszukiwanie skutkuje pustym ciągiem lub zwracanie pustego ciągu przy braku dopasowania z IFERROR .
'formula to insert into D1 - =IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"", "")
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"""", """")"
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&TEXT(,), TEXT(,))"
Z TEXT(,)
wymianą starego ""
sposobu dostarczania pusty ciąg, można dostać się do zaprzestania korzystania z liczydła w celu ustalenia, czy masz odpowiednią liczbę cytatów w ciąg formuły.
Funkcja VBA
1). Formula = "=" "THEFORMULAFUNCTION" "& (CHAR (34) &" "STUFF" "& CHAR (34))"
2). Formula = „THEFORMULAFUNCTION” „STUFF” „”
Pierwsza metoda wykorzystuje vba do napisania formuły w komórce, co daje obliczoną wartość:
THEFORMULAFUNCTION "STUFF"
Druga metoda używa vba do napisania ciągu w komórce, co daje wartość:
THEFORMULAFUNCTION "STUFF"
Wynik / formuła programu Excel
1) = „THEFORMULAFUNCTION” i (CHAR (34) i „STUFF” i CHAR (34))
2) FUNKCJONOWANIE „FUNDUSZU”
="Maurice "&"""TheRocker"""&" Richard"
Istnieje jednak inny sposób na „Jak zbudować następujący ciąg w formule Excel:„ Maurice ”Rakieta„ Richard ”” niż „Jak utworzyć ciągi zawierające podwójne cudzysłowy w formułach Excel?”, Który jest po prostu użyć dwa pojedyncze cytaty:
Po lewej stronie wycina się Calibri z arkusza programu Excel, a po prawej wycina się z okna VBA. Moim zdaniem ucieczka, jak wspomniano w @YonahW, wygrywa „w dół”, ale dwa pojedyncze cudzysłowy nie są bardziej typowe niż dwa podwójne, a różnica jest dość widoczna w VBA bez dodatkowych naciśnięć klawiszy, podczas gdy potencjalnie nie jest zauważalna w arkuszu kalkulacyjnym.
""
może tylko dlatego, że mam Mac Excel 2011