2013-03-01 3 views
0

У меня нет опыта в этом. У меня есть текстовый файл, содержащий MCQ quotes. В настоящее время мне приходится редактировать все вопросы викторины с разделителями (например, TABS), прежде чем импортировать их в excel. Мне нужно автоматизированный способ форматирования импортированного файла в эти столбцы QuestionId ExamType, Year, Subject, Question, Answer1, Answer2, Answer3, Answer4, Answer5, CorrectAnswer, Изображение без необходимости вручную редактировать текст вначале. Окай, вот пример текста i «в настоящее время импортируется в превосходное положение». 1. Правительство как искусство управления относится к процессу привлечения людей в общество. b. создания политических партий C. предоставления бесплатного образования D. приобретения социальных навыков, 2. Существенная особенность государство A. Доступность минеральных ресурсов B. Развитая инфраструктура C. C организованная система законов D. Развитые рынки. Я хотел бы привести пример 1 и 2 в столбцы выше. ve zipped вверх, что я был , чтобы вы могли посмотреть i также включили данные сырой викторины так, чтобы вы можете иметь представление, что это такое, что я tryin для форматирования ссылки. Спасибо всем Ваша поддержка.форматирование форматирования импортированного текстового файла в excel

+0

Чтобы получить полезную информацию ответ, нам понадобится больше кода/контекста. Форматирование данных состоит в том, чтобы сделать его похожим на x вместо y.Я не уверен, что понимаю любой из этих двух компонентов или, если на то пошло, то, что вы уже пытались сделать. Можете ли вы привести пример того, как выглядят ваши данные сейчас и как вы хотите, чтобы он выглядел в конце концов? – KyleMit

+0

OKay Thanks heres пример текста, который я в настоящее время импортирую в excel ». 1. Правительство как искусство управления относится к процессу« Aruling people »в обществе. B. Создание политических партий C. предоставление бесплатного образования D. приобретение социальных навыков, 2. Существенной особенностью государства является А. наличие полезных ископаемых B. развитая инфраструктура. C организованная система законов D. развитые рынки. – user2122072

ответ

0

Попробуйте:

Откройте документ первенствовать и ударил Alt + F11, чтобы открыть редактор VBA, вставьте новый модуль (если один уже не существует), открыть его, и вставьте в следующем коде (они пользовательские определенные пользователем функции, которые мы будем использовать в немного)

Function LEFTDELIMIT(ByVal text As String, ByVal delimiter As String) 
    Dim position As Integer 
    Dim leftText As String 
    position = InStr(1, text, delimiter, vbTextCompare) - 1 
    leftText = Left(text, position) 
    LEFTDELIMIT = leftText 
End Function 

Function RIGHTDELIMIT(text, delimiter) 
    Dim position As Integer 
    Dim rightText As String 
    position = Len(text) - Len(delimiter) - InStr(1, text, delimiter, vbTextCompare) + 1 
    rightText = Right(text, position) 
    RIGHTDELIMIT = rightText 
End Function 

Function NOERROR(text) 
    If IsError(text) Then 
     NOERROR = "" 
    Else 
     NOERROR = text 
    End If 
End Function 

Я предполагаю, в этот момент, что все тексты для ваших викторинах находится в A1. Идем дальше и разделим эту ячейку запятыми, как я указал ранее, чтобы получить каждый вопрос в своем столбце. Поскольку мы хотим, чтобы каждый из этих вопросов занимал свою собственную строку, выделите все строки 1 и скопируйте, а затем вставьте специальные данные в A2 и выберите опцию для трансляции значений. Теперь у каждого вопроса есть своя строка. Теперь то, что мы хотели бы сделать, дает каждому ответу свой столбец. Мы можем использовать пользовательские функции, из которых вы можете получить весь текст слева или справа от пользовательского разделителя.

Если значение А2

  • 1.Government как искусство правления относится к процессу A.ruling людей в обществе b.establishing политических партий C. предоставление бесплатного образования D. эквайринг социальными навыки

Тогда мы заполнить другие столбцы с помощью следующего кода:

  • B2: =LEFTDELIMIT(A2,"A.")
  • С2: =NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"A."),"B."))))
  • D2: =NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"B."),"C."))))
  • Е2: =NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"C."),"D."))))
  • F2: =NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"C."),"D."))))
  • G2: =NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"D."),"E."))))

Это делает некоторые предположения о том, как отформатирован входящие данные. Если это не сработает, пожалуйста, продемонстрируйте, что вы работаете в файле excel, который вы можете загружать и распространять через любой онлайн-хостинг для обмена файлами, чтобы лучше понять, какие конкретные ошибки могут сбить вас с толку.

+0

Спасибо. Единственная проблема заключается в том, что я в настоящее время добавляю вкладки в ручном режиме (Not Cool). – user2122072

+0

Вау, спасибо. «Но продолжайте и разделите эту ячейку запятыми как I , указанным ранее, чтобы получить каждый вопрос в своей колонке.»? Я искал это msg can not find it.I помните, что вы говорите, что я должен разграничить точки с запятой и сохранить как файл CSV, так как же запятые? – user2122072

+0

Hight Ce ll A1, все значения, перейдите на ленту данных, выберите текст в столбцы, выберите разделитель и затем выберите разделитель (в данном случае запятую). CSV-файлы - это очень стандартный способ хранения данных, которые читаются множеством различных приложений. Пожалуйста, не забудьте принять любые ответы, которые были полезны для вас и/или upvote (хотя я еще не уверен, что у вас есть этот privelege) – KyleMit

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