2014-12-30 3 views
0

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

Таким образом, столбец А содержит данные ответа людей, как это:

glare, lake, car 
rag, clear, gear, lear, cake, glare, rack, keg, car, care, leak, ace 
cake, lake, lark, car, rake, cage, real, ekl, rage 
Leak, Rage, Gale, Kale, Rag, Lag, Large, Lack, Real, Rake, Race, Car, Care, Leg, Cage 

А вот список всех правильных ответов:

grackle, calker, lacker, rackle, argle, cager, carle, clear, clerk, crake, creak, glace, glare, grace, lacer, lager, laker, large, regal, acre, ager, alec, cage, cake, calk, care, cark, carl, clag, crag, earl, egal, gale, gear, geck, kale, lace, lack, lake, lark, leak, lear, race, rack, rage, rake, rale, real, reck, ace, age, ale, arc, are, ark, car, cel, ear, elk, era, erg, gae, gal, gar, gel, kae, kea, keg, lac, lag, lar, lea, leg, lek, rag, rec, reg 

Итак, первый человек написал в 3 правильных ответов , поэтому B1 должен сказать «3», B2 должен сказать «12», B3 должен сказать «8» (не «9», так как «ekl» не входит в список правильных ответов) и так далее.

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

+0

Подождите, все эти данные только внутри _Column A _ – chancea

+0

да, все эти данные? только в столбце А, разделенных запятыми – abclist19

ответ

2

Если у вас есть правильные слова в списке, одно слово в ячейке, например, в Z2:Z20 без каких-либо пробелов, то вы можете использовать эту формулу в B1 скопирована вниз

=SUMPRODUCT(ISNUMBER(SEARCH(" "&Z$2:Z$20&","," "&A1&","))+0)

+0

Спасибо, барри и @ garys-student. Оба ответа работают, но путь Барри был самым простым и полезным для меня. – abclist19

+0

@ abclist19 ............ Я согласен с вами. –

1

Вот макрос (UDF). Введите следующую UDF в стандартном модуле:

Public Function CorrectCount(r1 As Range, r2 As Range) As Long 
    Dim v1 As String, v2 As String 
    CorrectCount = 0 
    v1 = "," & r1.Value & "," 
    For Each r In r2 
     v2 = "," & r.Value & "," 
     If InStr(1, v1, v2) > 0 Then 
      CorrectCount = CorrectCount + 1 
     End If 
    Next r 
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:

= myfunction (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

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

Вот пример, в котором список правильных ответов в колонке F:

demo

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