Проверьте, существует ли текст в оставшейся части столбца, и если да, используйте информацию из той строки, в которой он находится - PullRequest
0 голосов
/ 18 февраля 2019

Я проследовал до пути к ячейке, чтобы проверить другую ячейку, в которую вводим текст, и проверить, совпадает ли это текстовое значение где-либо еще в столбце, и, если это так, он захватывает числозначение, которое находится в том же столбце, что и он, но в строке текста, который проверен.

1]

Так что, если вы используете изображение, вы можете видеть, что у меня в настоящий момент выбран E7.Я хочу, чтобы он проверил столбец «КУРС ГОЛЬФА» для любой другой строки, которая содержит тот же текст, что и в собственной строке.Для этого это "Course1".Я хотел бы, чтобы он проверил оставшуюся часть столбца B на наличие совпадений для «Course1», которые есть в B3.Если оно совпадает, я хочу, чтобы оно затем использовало значение, которое находится в том же столбце, что и (E), но в той же строке, что и сопоставленный текст в столбце B. В этом случае я бы хотел, чтобы оно скопировало значение из E3.Если не было совпадения (как, скажем, это новый курс), тогда мне нужно было бы просто нажать на ячейку и ввести необходимые числа, что я мог бы сделать в любом случае, но просто добавив его радиИнформация.

Я пробовал все виды поисков в Google и думал, как бы я мог это сделать, но это слишком сложно для моих любительских знаний об Excel.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Объединенные ячейки смешиваются с INDEX / MATCH

Формула

Скопируйте следующую формулу в ячейку E7:

=IF(AND($B7<>"",$D7="Par"),IF(ISERROR(MATCH($B7,$B$3:$B5,0)),"Par",INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0))),IF(AND($B6<>"",$D7="Strokes"),IF(ISERROR(MATCH($B6,$B$3:$B4,0)),"Strokes",INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1)),""))

Изображение

enter image description here

Как

Мы создаем формулу в ячейке E7.

MATCH

Синтаксис: MATCH(lookup_value,lookup_array,match_type)

  • Мы будем использовать MATCH, чтобы найти положение COURSE1 в приведенном вышеячейки столбца B.
  • 1-й аргумент - lookup_value, который будет ячейкой в ​​той же строке нашей строки (7) в столбце B: B7, где мы будем блокироватьтолько столбец (мы не будем искать в других столбцах): $B7.
  • 2-й аргумент lookup_array будет диапазоном.Первой ячейкой будет ячейка B3, строку и столбец которой мы заблокируем, потому что мы всегда будем начинать поиск с этой ячейки во всех остальных ячейках слева или ниже: $B$3.Последняя ячейка будет B5, где мы заблокируем только столбец: $B5.
  • И, наконец, мы будем использовать 0 в качестве параметра 3-го аргумента match_type, чтобы найти точное совпадение.
  • Теперь были готовы написать нашу MATCH формулу:

       =MATCH($B7,$B$3:$B5,0)
    

    , которая вернет 1 , то есть точное (0) совпадение B7 было найдено в 1-й ячейке диапазона B3:B5.

  • Нам не нужно 1 (E3), но значение в ячейке (5).

INDEX

Функция INDEX имеет 2 синтаксиса, в которых мы будем использовать второй:

Синтаксис 2: INDEX(reference,row_num,column_num,area_num)

Поскольку мы использовали диапазон в один столбец, мы можем смело опускать аргументы row_num и column_num, что оставляет нам:

Измененный синтаксис: INDEX(reference,area_num)

  • Функция INDEX, использованная таким образом, вернет area_num -ое значение reference, т.е. в нашем случае, если area_num равно 1, она вернет значение 1st внаш диапазон столбцов, если это 2, то 2nd и т. д.
  • Первый аргумент reference будет иметь тот же размер, что и диапазон MATCH в столбце E: $E$3:$E5, где мы удалим блокировки столбцов, поскольку мы также хотим вернуть результаты для других столбцов: E$3:E5.
  • 2-й аргумент area_num будет нашей MATCH формулой.
  • Наша текущая формула выглядит следующим образом:

       =INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0))
    

    , которая вернетзначение ячейки E3: 5.

Окончательные настройки: IF, AND и ISERROR

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

=IF($D7="Par",INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0))
=IF($D7="Strokes",INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1)

=IF($D7="Par",INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0)),$D7="Strokes",INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1))

и (3-е условие) проверяют в столбце B, есть ли значение в строке, где мы создаем формулу для строки, содержащей Par, или строку выше для строки, содержащей Strokes, используяAND:

=IF(AND($B7<>"",$D7="Par"),INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0)),IF(AND($B6<>"",$D7="Strokes"),INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1),""))

Наконец, мы должны добавить некоторую проверку ошибок, потому что, если совпадение не было найдено, формула выдаст и #N/A error:

=IF(AND($B7<>"",$D7="Par"),IF(ISERROR(MATCH($B7,$B$3:$B5,0)),"Par",INDEX(E$3:E5,MATCH($B7,$B$3:$B5,0))),IF(AND($B6<>"",$D7="Strokes"),IF(ISERROR(MATCH($B6,$B$3:$B4,0)),"Strokes",INDEX(E$3:E4,MATCH($B6,$B$3:$B4,0)+1)),""))

Теперь мы готовы скопировать формулу справа и снизу, насколько нам нужно.

0 голосов
/ 18 февраля 2019

Я думаю, вы ищете INDEX / MATCH:

=IF(COUNTIF($B:$B,$B7)>1,INDEX(E:E,MATCH($B7,$B:$B,0)),"New")

enter image description here

Я добавил COUNTIF проверку, чтобы убедитьсячто один и тот же курс существует более одного раза в столбце B, без него вы бы получили циклическую справочную формулу (что также произойдет с приведенной выше формулой, если один и тот же курс появится несколько раз, но вы используете эту формулу в первом случаеэтого курса, поэтому убедитесь, что не используете его при первом заполнении баллов PAR для определенного курса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...