У меня есть следующая таблица с ключевыми словами:

---------------------------------------
|group   | keywords                   |
---------------------------------------
|1       | lorem, ipsum, aeque, dolor |
---------------------------------------
|2       | ipsum, oratio, vim, lorem  |
---------------------------------------
|3       | lorem, qualisque, dolor    |
---------------------------------------

И я хочу получить резюме со всеми ключевыми словами, объединенными в одну ячейку с функцией Excel:

---------------------------------------------------------------
|summary | aeque, dolor, ipsum, lorem, oratio, qualisque, vim |
---------------------------------------------------------------

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

Я мог бы использовать CONCATENATE, чтобы объединить все ключевые слова, но как мне получить упорядоченную строку с уникальными ключевыми словами из этой объединенной строки?

1 ответ1

3

С данными в столбце A, как:

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

Public Function KonKat(rIN As Range) As String
    Dim r As Range, c As Collection
    Set c = New Collection

    For Each r In rIN
        ary = Split(Replace(r.Value, " ", ""), ",")
        On Error Resume Next
        For Each a In ary
            c.Add a, CStr(a)
            If Err.Number = 0 Then
                KonKat = KonKat & ", " & a
            Else
                Err.Number = 0
            End If
        Next a
        On Error GoTo 0
    Next r
    KonKat = Mid(KonKat, 3)
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:

=konkat(A1:Z1)

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

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

Макросы должны быть включены, чтобы это работало!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .