1

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

IE у меня есть один столбец с информацией о степени для каждого человека, как:

BS 1990; MS 1991; PHD 1992;
Next record:
BS 1999; PHD 2000

Данные разные для каждого человека с разным количеством степеней. Я хочу переместить все BS в один новый столбец, все MS в другой и PHD в другой. Я могу получить данные для разделения на новые столбцы, но не на правильные столбцы, так как данные разные для каждой строки.

Благодарю.

2 ответа2

0

Если предположить,

  • VBA приемлемо,
  • Office 2000 или более поздняя версия (для функции Split. Если вы используете более старую версию, чем 2003, скажите мне, чтобы я дважды проверил это.)
  • Ваш формат соответствует, с разделителем точка с запятой.

затем добавьте этот код:

Function XLstrtok2(sStr As String, sDesiredDegree As String)
    Dim ss() As String, i As Integer
    sStr = Trim(sStr)
    If Right(sStr, 1) = ";" Then sStr = Left(sStr, Len(sStr) - 1)
    ss = Split(sStr, ";")
    For i = 0 To UBound(ss)    
        If Left(Trim(ss(i)), Len(sDesiredDegree)) = sDesiredDegree Then XLstrtok2 = Trim(ss(i)): Exit Function    
    Next    
    XLstrtok2 = "--"
End Function

Ниже показана ваша таблица и формулы для размещения градусов в разных столбцах справа от объединенной строки с точками с запятой.

Убедитесь, что ваши столбцы достаточно широки. При желании мы можем добавить больше кода внизу, говоря

With ActiveSheet.Columns("A:E")
    .AutoFit
    .HorizontalAlignment = xlLeft
End With

Скопируйте последний столбец вправо столько, сколько нужно. Например, скопируйте E1:E3 в F1:F3.

Скопируйте последний ряд столько, сколько необходимо. Например, скопируйте A3:E3 в A4:E4 и введите новые данные в формате A4.

Конечно, целесообразно вставлять строку сверху для правильных заголовков.

Подскажите, если что-то из этого неясно. Или, если это приемлемо. Обратите внимание на ввод данных и их согласованность (например, показывает ли он иногда PHD, а иногда Ph.D) для определения необходимости дополнительных столбцов, как показано ниже для вариантов PHD.

Расширенная электронная таблица

Расширенные формулы

0

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

=IF(ISERROR(FIND("BS",A1)),"",MID(A1,FIND("BS",A1),7))

и скопировать вниз. В С1 введите:

=IF(ISERROR(FIND("MS",A1)),"",MID(A1,FIND("MS",A1),7))

и скопировать вниз. В D1 введите:

=IF(ISERROR(FIND("PHD",A1)),"",MID(A1,FIND("PHD",A1),8))

и скопируйте вниз:

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