Jeśli formuła zawiera określony tekst / symbol / funkcję

0

Jak mogę wykryć, czy niektóre komórki zawierają określoną formułę z określonym tekstem / symbolami?

1. A formula which is =today(), or =date(), or =time()
2. A formula which starts with =(any alphabet letter)
3. A cell which starts with '
4. A formula which ends with any number

Używam formuł w formatowaniu warunkowym.

Dziękuję Ci.

masterton
źródło
3
FORMULATEXTda ci tekst formuły, możesz następnie poszukać w nim dowolnego ciągu
cybernetic.nomad
Tylko spostrzeżenie: p._phidot_ opracował dla ciebie prawie całe rozwiązanie. W ostatnim utworze najwyraźniej znalazłeś to, czego szukałeś gdzie indziej. Publikowanie pracy dwóch innych osób jako własnej odpowiedzi i akceptowanie jej jest trochę tandetne. Nie jest jasne, gdzie znalazłeś odpowiedź José Augusto, ale lepszym rozwiązaniem byłoby albo link do tej odpowiedzi w komentarzu, albo praca z p._phidot_, aby dodać lub odnieść się do niej w odpowiedzi z przypisaniem. Następnie zaakceptuj odpowiedź p._phidot_ (którą nadal możesz zrobić i usunąć własną). (kont.)
fixer1234 28.10.18
To dałoby wam obojga małego przedstawiciela za wysiłek.
fixer1234
Dzięki za komentarz. Nie mam nic przeciwko przedstawicielowi i drobiazgom. Nie wiem, czy mógłbym dostać przedstawiciela w tej sprawie (mogę wynagrodzić samego przedstawiciela? Gdyby tak było, stworzyłbym wiele pytań i sam
napisałem
Początkowo chciałem wybrać oba jako odpowiedzi, ale system na to nie pozwolił. Celem jest szerzenie wiedzy i przyniesienie korzyści wszystkim. Myślę, że to najważniejsze (nie dotyczy przedstawicieli). Gdybym zamieścił Q3 w komentarzu i wybrał to jako rozwiązanie, trudno byłoby ludziom to zauważyć. Być może nie powinienem był dzielić się swoimi odkryciami i po prostu milczeć. Mógłbym usunąć odpowiedź, jeśli ludzie uważają, że przypadkowe zwiększenie liczby przedstawicieli stanowi poważny problem. Nie mam nic przeciwko przedstawicielowi. W każdym razie poprosiłbym p._phidot_ o zaktualizowanie odpowiedzi. Mógłbym go usunąć, jeśli on tak woli. Dziękuję Ci.
masterton

Odpowiedzi:

1

Ans dla 1, 2, n 4:

1a) =IF(FORMULATEXT(A1)="=TODAY()",1,0)

1b) =IF(LEFT(FORMULATEXT(A1),5)="=TIME",1,0)

1c) [edytuj rozwiązanie 1b]

2) =IF(AND(CODE(MID(FORMULATEXT(A1),2,1))>=65,CODE(MID(FORMULATEXT(A1),2,1))<=90),1,0)

[możesz odnieść się do szczegółów kodu () w pliku pomocy .. (:]

4) =IF(AND(code(right(FORMULATEXT(A1),1))>=48,CODE(right(FORMULATEXT(A1),1))<=57),1,0)

Mam nadzieję, że to pomoże.

uwaga na trzeci kwartał:

formuła prawie zawsze zaczyna się od znaku „=” .. nigdy nie zaczyna się od znaków .. chyba że faktycznie odnosi się do wartości tekstowej .. wtedy możesz użyć if () + left () + edytować rozwiązanie dla Q2.

Podziel się tym, co próbowałeś i nie działało. Pomogę innym zrozumieć, gdzie się trzymałeś i pomogę. (:

p._phidot_
źródło
W przypadku Q3 przepraszam za zamieszanie. Chodzi mi o to, że komórka zaczyna się od apostrofu symbolu. Wymusza wprowadzanie tylko tekstu. Apostrof jest ukryty na widoku. Na przykład: „= 1 + 1
masterton
W przypadku czwartego kwartału może być. Na przykład = dzisiaj () + 5. Dziękuję za odpowiedź.
masterton
zaktualizowana odpowiedź na czwarty kwartał. btw, „= 1 + 1 to ciąg / tekst .. nie formuła (jak wspomniano w pytaniu) ..
p._phidot_
po chwili namysłu .. Proponuję to jako rozwiązanie dla trzeciego kwartału:=IF(LEFT(A1,1)="=",1,0)
p._phidot_
1
W końcu znalazłem odpowiedź na trzeci kwartał. Połączyłem twoje z odpowiedzią na trzeci kwartał w jednym poście. Dziękuję bardzo za Twoją pomoc.
masterton
1

Odpowiedz na Q3

Otwórz VBA i utwórz makro:

Option Explicit
Function ZIsApostrophe(rng As Range) As Boolean
    ZIsApostrophe = rng.PrefixCharacter = "'"
End Function

Użyj funkcji niestandardowej, ZIsApostrophe()aby sprawdzić, czy komórka zaczyna się od „.

Na przykład wpisz, ZIsApostrophe(A3)aby sprawdzić, czy komórka A3 zaczyna się od „. Jako wynik zwróci wartość PRAWDA lub FAŁSZ.

Źródło: José Augusto


Odpowiedzi na 1, 2 i 4

1a) = JEŻELI (FORMULATEKST (A1) = „= DZISIAJ ()”, 1,0)

1b) = JEŻELI (LEWY (FORMULATEKST (A1), 5) = „= CZAS”, 1,0)

1c) [edytuj rozwiązanie 1b]

2) = JEŻELI (ORAZ (KOD (MID (FORMULATEKST (A1), 2,1))> = 65, KOD (MID (FORMULATEKST (A1), 2,1)) <= 90), 1,0)

[możesz odnieść się do szczegółów kodu () w pliku pomocy .. (:]

4) = JEŻELI (ORAZ (kod (prawy (FORMULATEKST (A1), 1))> = 48, KOD (prawy (FORMULATEKST (A1), 1)) <= 57), 1,0)

Źródło: p. phidot

masterton
źródło