[Help] Tách đoạn văn bản với nhiều điều kiện.

Liên hệ QC

khoak47

Thành viên mới
Tham gia
25/5/08
Bài viết
11
Được thích
1
Em có một loạt các cột dạng câu hỏi (A1) và đáp án (B1) như thế này:
" Các hoạt đông đầu tư xây dựng chịu sự điều chỉnh của pháp luật nào dưới đây? a. Pháp luật về xây dựng b. Pháp luật về xây dựng và pháp luật về đầu tư công c. Pháp luật về xây dựng và pháp luật về đấu thầu d. Pháp luật về xây dựng và pháp luật khác có liên quan " và có riêng một cột đáp án (ví dụ: câu này đáp án là d)
Công việc em cần tách riêng câu hỏi sang một cột và câu trả lời sang một cột. Phần câu hỏi thì em dùng công thức sau:
=LEFT(A1,FIND("?",A1))
Còn phần đáp án thì em đang loay hoay tìm cách mà chưa ra. Trên diễn dàn mình em tìm được công thức sau nhưng chỉ đúng với những đáp án là d
=TRIM(RIGHT(SUBSTITUTE(A1,B1&".",REPT(" ",LEN(A1))),LEN(A1)))
Mong các anh chị chỉ giúp em với ạ, chứ làm thủ công vài nghìn câu thế này chắc cũng to tay ạ.
 
Em có một loạt các cột dạng câu hỏi (A1) và đáp án (B1) như thế này:
" Các hoạt đông đầu tư xây dựng chịu sự điều chỉnh của pháp luật nào dưới đây? a. Pháp luật về xây dựng b. Pháp luật về xây dựng và pháp luật về đầu tư công c. Pháp luật về xây dựng và pháp luật về đấu thầu d. Pháp luật về xây dựng và pháp luật khác có liên quan " và có riêng một cột đáp án (ví dụ: câu này đáp án là d)
Công việc em cần tách riêng câu hỏi sang một cột và câu trả lời sang một cột. Phần câu hỏi thì em dùng công thức sau:
=LEFT(A1,FIND("?",A1))
Còn phần đáp án thì em đang loay hoay tìm cách mà chưa ra. Trên diễn dàn mình em tìm được công thức sau nhưng chỉ đúng với những đáp án là d
=TRIM(RIGHT(SUBSTITUTE(A1,B1&".",REPT(" ",LEN(A1))),LEN(A1)))
Mong các anh chị chỉ giúp em với ạ, chứ làm thủ công vài nghìn câu thế này chắc cũng to tay ạ.
Cái này em làm chơi thôi nha :D . Bác tham khảo thử xem
 

File đính kèm

  • Book1.xls
    39 KB · Đọc: 17
Lần chỉnh sửa cuối:
Em có một loạt các cột dạng câu hỏi (A1) và đáp án (B1) như thế này:
" Các hoạt đông đầu tư xây dựng chịu sự điều chỉnh của pháp luật nào dưới đây? a. Pháp luật về xây dựng b. Pháp luật về xây dựng và pháp luật về đầu tư công c. Pháp luật về xây dựng và pháp luật về đấu thầu d. Pháp luật về xây dựng và pháp luật khác có liên quan " và có riêng một cột đáp án (ví dụ: câu này đáp án là d)
Công việc em cần tách riêng câu hỏi sang một cột và câu trả lời sang một cột. Phần câu hỏi thì em dùng công thức sau:
=LEFT(A1,FIND("?",A1))
Còn phần đáp án thì em đang loay hoay tìm cách mà chưa ra. Trên diễn dàn mình em tìm được công thức sau nhưng chỉ đúng với những đáp án là d
=TRIM(RIGHT(SUBSTITUTE(A1,B1&".",REPT(" ",LEN(A1))),LEN(A1)))
Mong các anh chị chỉ giúp em với ạ, chứ làm thủ công vài nghìn câu thế này chắc cũng to tay ạ.
Anh thử hàm nè xem.
Mã:
Function SplitQA(ByVal Txt As String, Optional ByVal typeQA As Byte = 0) As String
Dim aTmp, i, aMark()
aMark = Array("a. ", "b. ", "c. ", "d. ", "e. ", "f. ", "g. ")
aTmp = Split(Txt, "?")
If typeQA = 0 Then
        SplitQA = Trim(aTmp(0)) & "?"
    Else
    aTmp(0) = ""
    Txt = Join(aTmp, "")
    aTmp = Split(Txt, ".")
    If typeQA >= 1 And typeQA <= UBound(aTmp) + 1 Then
        SplitQA = aMark(typeQA - 1) & Trim(Left(aTmp(typeQA), Len(aTmp(typeQA)) - 1))
    End If
End If
End Function
- Tách câu hỏi:
Mã:
=SplitQA($A$1)
- Tách đáp án:
Mã:
=SplitQA($A$1,ROW(A1))
'Copy xuống
 

File đính kèm

  • SplitQA.xlsb
    15.6 KB · Đọc: 14
Hình như hai bạn phía trên hiểu nhầm ý của chủ topic rồi. Tôi thì hiểu như thế này:
Mã:
=TRIM(MID(LEFT(A1,SEARCH(CHAR(CODE(B1)+1)&".",A1&CHAR(CODE(B1)+1)&".")-1),SEARCH(B1&".",A1),LEN(A1)))
Với A1 là câu hỏi (và các đáp án), B1 là đáp án cần lấy (dạng a, b, c)
Công thức này nếu sửa lại một chút cũng có thể lấy tất cả các đáp án như kết quả của hai bạn phía trên.
 
Xin cảm ơn các anh chị đã quan tâm. VBA thì em cũng không biết mấy nên em chỉ xin công thức thôi ạ.
Cảm ơn anh "huuthang_bd". công thức ngọn nhẹ, tách được câu hỏi ra nhưng câu trả lời tương ứng với cột C thì như của anh là ok rồi ạ.
 

File đính kèm

  • Screenshot 2017-08-30 20.08.46.png
    Screenshot 2017-08-30 20.08.46.png
    140.4 KB · Đọc: 12
Web KT
Back
Top Bottom