
Как определить, содержат ли определенные ячейки определенную формулу с определенным текстом/символами?
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
Я использую формулы в условном форматировании.
Спасибо.
решение1
Ответ на 1, 2, н 4:
1а) =IF(FORMULATEXT(A1)="=TODAY()",1,0)
1б) =IF(LEFT(FORMULATEXT(A1),5)="=TIME",1,0)
1c) [редактировать решение 1b]
2 ) =IF(AND(CODE(MID(FORMULATEXT(A1),2,1))>=65,CODE(MID(FORMULATEXT(A1),2,1))<=90),1,0)
[ подробности о code() можно найти в файле справки.. (: ]
4 ) =IF(AND(code(right(FORMULATEXT(A1),1))>=48,CODE(right(FORMULATEXT(A1),1))<=57),1,0)
Надеюсь, поможет.
примечание для Q3:
формула почти всегда начинается с символа «=».. она никогда не начинается с символа.. если только вы на самом деле не ссылаетесь на текстовое значение.. в этом случае вы можете использовать if() + left() + edit решение для Q2.
Пожалуйста, поделитесь тем, что вы пробовали и что не сработало. Я помогу другим понять, на чем вы застряли, и помогу. ( :
решение2
Ответ на вопрос 3
Откройте VBA и создайте макрос:
Option Explicit
Function ZIsApostrophe(rng As Range) As Boolean
ZIsApostrophe = rng.PrefixCharacter = "'"
End Function
Используйте пользовательскую функцию, ZIsApostrophe()
чтобы проверить, начинается ли ячейка с «».
Например, введите , ZIsApostrophe(A3)
чтобы проверить, начинается ли ячейка A3 с ' . В качестве результата будет возвращено значение ИСТИНА или ЛОЖЬ.
Кредит: Хосе Аугусто
Ответы на вопросы 1, 2 и 4
1a ) =ЕСЛИ(ФОРМУЛАТЕКСТ(A1)="=СЕГОДНЯ()",1,0)
1б) =ЕСЛИ(ЛЕВЫЙ(ФОРМУЛАТЕКСТ(A1),5)="=ВРЕМЯ",1,0)
1c) [редактировать решение 1b]
2 ) =ЕСЛИ(И(КОД(СЕРЕДИНА(ТЕКСТФОРМУЛЫ(A1),2,1))>=65,КОД(СЕРЕДИНА(ТЕКСТФОРМУЛЫ(A1),2,1))<=90),1,0)
[ подробности о code() можно найти в файле справки.. (: ]
4 ) =ЕСЛИ(И(код(верно(ФОРМУЛАТЕКСТ(A1),1))>=48,КОД(верно(ФОРМУЛАТЕКСТ(A1),1))<=57),1,0)
Кредит: стр.фидот