Погода: -12°C
  • Не совсем программирование. Но всё же вопрос.
    Дано:
    Есть столбец А с фамилиями (каждая фамилия в столбце уникальна).
    Есть второй стоблбец В, где помимо фамилий из 1-го столбца есть ещё и "левые" фамилии. И все фамилии во втором столбце могут повторяться.
    Надо:
    Надо сравнить каждую фамилию второго столбца с фамилиями первого. И если фамилия во втором столбце совпадёт с одной из фамилий первого, то присваиваем значение "Истина" или, к примеру "1".
    Делов то - всего ничего. Но чего-то не идёт у меня никак это сравнение...
    Вроде как функция СОВПАД подходит для такого сравнения (она может сравнивать 1 значение со значениями из массива), но не могу добиться результата.
    Объясню.
    При попытке сравнивать вот по этой формуле:
    ={СОВПАД(B1;A:A)} (здесь в толбце А стоят уникальные фамилии, а в B1..Bn - набор фамилий, из которго надо выбрать только нужные)
    у меня получается значение ИСТИНА, только если в столбце В стоит фамилия, такая же, как в А1. Т.е. Весь столбец В стравнивается только с 1-ой ячейкой.
    А мне надо сравнить каждую фамилию из В со всеми из А.
    КАК???

  • СОВПАД() работает с текстовыми строками, но никак не массивами значений.
    Нужно пользоваться к примеру ВПР() в данном случае
    Первый столбец должен быть отсортирован по возрастанию
    Забиваем следующую формулу
    =1-ЕОШИБКА(ВПР(B6;$A:$A;1))
    и наслаждаемся результатом.

  • Могу с вами несколько не согласиться сначала. Для этого вот цитата из экселевского хелпа:
    _______________
    Чтобы проверить, соответствует ли введенное пользователем значение одному из значений в интервале, следует ввести следующую формулу в ячейку как массив. Чтобы ввести формулу как массив в отдельную ячейку, нажмите клавиши CTRL+SHIFT+ENTER в Microsoft Excel для Windows или +ENTER в Microsoft Excel для Макинтош. Имя «ПроверяемоеЗначение» ссылается на ячейку, содержащую введенное пользователем значение; имя «ИнтервалДляСравнений» ссылается на список текстовых значений, с которыми производится сравнение.

    {=ИЛИ(СОВПАД(ПроверяемоеЗначение;ИнтервалДляСравнений))}
    _______________
    По идее, исходя из хелпа, можно пользоваться функцией СОВПАД. Что я и пытался безуспешно делать. У меня никак не выходило добиться нужного результата.
    Поэтому полностью соглашусь, что ВПР подходит для нужного мне сравнения. Вчера проблема разрешилась. Формула получилась практически такая же.
    Но всё равно, большое спасибо за участие :live:

  • Описание функции из хелпа (офис ХР)
    -------------------------------------------------------
    СОВПАД

    Сравнивает две строки текста и возвращает значение ИСТИНА, если они в точности совпадают, и ЛОЖЬ в противном случае. Функция СОВПАД учитывает регистр, но игнорирует различия в форматировании. Функция СОВПАД используется для того, чтобы проверить, входит ли некоторый текст в документ.

    Синтаксис

    СОВПАД(текст1;текст2)

    Текст1 — это первая текстовая строка.

    Текст2 — это вторая текстовая строка
    -------------------------------------------------
    Значит, у нас разный хелп.:миг:Ну или версии офиса.
    Обращайтесь еще. Можно даже без :pivo: :хехе:

  • Ваша правда.
    Я по некотрым причинам поставил эксель 2000. Там справка, которую я привёл. А в 2002 экселе нет этого куска про "ИнтервалДляСравнений".

Записей на странице:

Перейти в форум

Модератор: