Функция ЕСЛИ с несколькими вариантами выбора в одной ячейке

Функция ЕСЛИ с несколькими вариантами выбора в одной ячейке

У меня есть некоторые данные, которые являются ответами на одну из моих форм вопросов.

На некоторые вопросы может быть несколько ответов. Например:

Какое твое хобби?

  1. Путешествие
  2. Съемки фильма
  3. Спорт
  4. Танцы

Каждый ответ имеет свой номер (как показано выше).

т.е. 1 — для путешествий, 2 — для съемок и т.д.

Некоторые ячейки имеют несколько ответов.

Например: в ячейке А3 находятся числа 1, 3, 4. Числа разделяются запятыми.

На другом листе Excel я пишу таблицу с ответами, которые представлены не в виде чисел, а в виде имен (слов). С одинарными ответами это легко сделать с помощью функции ЕСЛИ:

IF(A1=1,"Traveling",IF(A1=2,"Filming",IF(A1=3,"Sport",IF(A1=4,"Dancing","Error"))))

Но с несколькими ответами у меня проблема. Как разделить числа, чтобы Excel понял, что в ячейке A3 3 ответа: Путешествия(1), Спорт(3) и Танцы(4)?

решение1

Вот простое решение, с вашей 1,3,4строкой в ​​ячейкеА1следующая формула вернет Travelling,Sport,Dancing, как и требуется:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,1,"Travelling"),2,"Filming"),3,"Sport"),4,"Dancing")

Примечание: этот метод (использование) SUBSTITUTEможно повторять максимум до 9 раз. Хотя я бы не советовал этого делать, так как текст станет несколько нечитаемым.

решение2

Попробуй использоватьПОИСКкак IF(SEARCH("1",A1),"Traveling")вместо IF(A1=1,"Traveling")и т. д. (например IF(SEARCH("3",A1),"Sport"))

решение3

Попробуйте следующееПользовательская функция (UDF):

Public Function MultiReturns(sIN As String) As String
    Dim i As Long

    nums = Array("1", "2", "3", "4")
    lets = Array("Traveling", "Filming", "Sport", "Dancing")

    MultiReturns = ""
    If sIN = "" Then Exit Function

    ary = Split(Replace(sIN, " ", ""), ",")

    For Each a In ary
        For i = LBound(nums) To UBound(nums)
            If a = nums(i) Then MultiReturns = MultiReturns & "," & lets(i)
        Next i
    Next a

    MultiReturns = Mid(MultiReturns, 2)
End Function

введите описание изображения здесь

Пользовательские функции (UDF) очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте текст и закройте окно VBE

Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как.xlsmскорее, чем.xlsx.

Чтобы удалить UDF:

  1. откройте окно VBE, как указано выше
  2. очистить код
  3. закрыть окно VBE

Чтобы использовать UDF из Excel:

=MultiReturns(A1)

Чтобы узнать больше о макросах в целом, см.:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

и

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

а для получения подробной информации о UDF см.:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Для работы этого метода должны быть включены макросы!

Связанный контент