2016-10-24 10 views
1

я пытаюсь выяснить, как написать заявление, если такие, как этотнаписание IF заявление для ODD чисел

IF (value in column A is ODD, then do this) 
IF (value in column A is EVEN, then do this) 

с клетками, имеющими буквы и цифры в них (т.е. клетки будут иметь следующий формат в столбец: A1, A2, A3 и т. д.). Это моя текущая формула:

=IF(EVEN(A13)=A13, I13, L13), 

Однако, я не могу как-то работать с ним так, что он опускает письмо в клетке и просто смотрит на номер. Любые предложения были бы с удовольствием оценены!

+0

Будет ли всегда быть одна буква? Просто замените 'A13' на' RIGHT (A13, LEN (A13) -1) ' –

+0

Не всегда ячейка может выглядеть (AB24 или ABC24). Я просто хочу посмотреть на числовое значение и написать формулу, включающую это в инструкцию IF, чтобы посмотреть, четное или нечетное числовое значение. – tellap

+0

Значит, число всегда находится в самом конце строки? –

ответ

0

Вот формула массива, которая будет работать, но я думаю, что есть более простой способ. Вам нужно нажать ctrl + shft + enter:

=IF(ISEVEN(VALUE(MID(A1,MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},A1),"")), 
LEN(A1)-MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},A1),""))+1))),I1,L1) 

Вот версия, не массив. Просто нажмите enter:

=IF(ISEVEN(VALUE(MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1& 
{0;1;2;3;4;5;6;7;8;9})),LEN(A1)-MIN(FIND({0;1;2;3;4;5;6;7;8;9}, 
A1&{0;1;2;3;4;5;6;7;8;9}))+1))),I1,L1) 
0

Вот функция VBA, что я использую для извлечения числа из строки:

Public Function numer(val As Variant) As Double 
Dim collector As String 
Dim i As Long 

For i = 1 To Len(val) 
    If IsNumeric(Mid(val, i, 1)) Or Mid(val, i, 1) = "," Then: _ 
    collector = collector + Mid(val, i, 1) 
Next i 

numer = CDbl(collector) 

End Function

Вы можете добавить, что новый модуль, а затем использовать он внутри ваших формул, как вы пожелаете (например, нормальная функция excel, см. ниже на скриншоте).

Result

Для получения дополнительной информации о том, как это сделать (используйте функцию VBA в формулах), пожалуйста, посмотрите здесь: https://support.office.com/en-us/article/Create-Custom-Functions-in-Excel-2007-2f06c10b-3622-40d6-a1b2-b6748ae8231f

Если вам нужно иметь кома для знаков после запятой внутри вашего number, вы должны немного изменить выражение if в этой функции, чтобы принимать запятые.

EDIT: Я улучшил функцию принять десятичных чисел (с запятой), а также я создал более сложную Примеру для вас, что показывает, как использовать функцию с результатом (В столбце B на скриншоте) и как использовать его внутри формулы с IF.

1

Чтобы проверить равномерность числа, достаточно выполнить тест на последней цифре только этого числа.

Таким образом, и если цифры появляются только в конце строки, то:

=ISEVEN(RIGHT(A1))

С уважением

+0

Я не думаю, что ему нужно проверить ровность. Он хочет использовать четную функцию, которая округляет число до ближайшего четного числа. – Blenikos

+0

Вы уверены? В начальном утверждении сказано: «IF (значение в столбце A равно EVEN, а затем сделайте это) ...». И посмотрите еще раз, как формула OP фактически использует функцию EVEN здесь. –

+0

Если честно, то, что меня задевает на этот вопрос, точно такое: EVEN (A13) = A13. Это не имеет никакого значения. A13 - ячейка? Строка? Вы правы на своих предположениях. Однако в комментариях к вопросам он задает другое дело. Полагаю, мы никогда не узнаем! Я не думаю, что OP является обычным пользователем SO – Blenikos

Смежные вопросы