Hướng dẫn Lập Công Thức Tách Dòng

Liên hệ QC

Account112

Thành viên mới
Tham gia
25/10/07
Bài viết
39
Được thích
6
Hi all, mọi người cho mình hỏi có cách nào tách dòng trong excell bằng công thức hay ko bởi mình có một tài sản có số lượng là 202 cái thì phải tách ra là 202 dòng tương ứng mỗi dòng là một cái bởi vì phải upload file excell lên chương trình kế toán ERP như thế này quản lý chi tiết bằng chương trình kế toán khi cần thanh lý 5 cái của tài sản thì sẽ bỏ đi 5 dòng thôi hic nhưng có tổng cộng 3500 tài sản có dòng thì chỉ có 1 cái còn dòng khác thì 13 cái ..
Thank You Advance I hope everyone help me
https://lh6.googleusercontent.com/_...Fk/VTcknVhAEo8/s800/09-04-2011 9-50-24 PM.jpg
Mã:
http://www.mediafire.com/?9duk74kb1wl6bks
 

File đính kèm

  • 09-04-2011 9-50-24 PM.jpg
    09-04-2011 9-50-24 PM.jpg
    206.6 KB · Đọc: 106
Lần chỉnh sửa cuối:
Hi all, mọi người cho mình hỏi có cách nào tách dòng trong excell bằng công thức hay ko bởi mình có một tài sản có số lượng là 202 cái thì phải tách ra là 202 dòng tương ứng mỗi dòng là một cái bởi vì phải upload file excell lên chương trình kế toán ERP như thế này quản lý chi tiết bằng chương trình kế toán khi cần thanh lý 5 cái của tài sản thì sẽ bỏ đi 5 dòng thôi hic nhưng có tổng cộng 3500 tài sản có dòng thì chỉ có 1 cái còn dòng khác thì 13 cái ..
Thank You Advance I hope everyone help me
https://lh6.googleusercontent.com/_...Fk/VTcknVhAEo8/s800/09-04-2011 9-50-24 PM.jpg
Mã:
http://www.mediafire.com/?9duk74kb1wl6bks

Hic hic bạn ơi làm sao để hiểu bạn bây giờ, khi mà 4 dòng của bạn chỉ có duy nhất 1 dấu phẩy ở đầu câu?
Tuy vậy, tôi cũng hơi thắc mắc là chương trình kế toán nào mà quản lý theo dạng tách dòng như vậy; lỡ số lượng là 1000 cái thì phải tách làm 1000 dòng à?
 
Dear bạn giúp mình tách số lượng ra đc không mình một bài trong forum thấy họ tên của nhiều người trong một dòng thành họ tên của mỗi người một dòng riêng biệt nhưng tại vì mình đã nói mình có tới 3500 tài sản các loại nhưng tối đa số lượng là 202 cái máy quy đổi thành 202 dòng hic hic help me ..
 
Hi All And Admin, minh khong hieu admin hay mọi người không quan tâm đến đề tài này hay sao không cho mình câu trả lời hay bởi vì forum giaiphapexcel còn yếu kém hay tại vì ít tham gia đóng góp cho forum thì nhân tiện cho mình xin lỗi sẽ cố gắng post bài cho forum nhiều hơn. Theo mình nghĩ forum excel đã phát triển rất lớn mạnh vậy mà khi mình cần tìm câu trả lời cho một vấn đề khó không admin phụ trách chuyên này ở đâu mà không giúp member. Nhưng mình không trách forum mà trách mình quá yếu trong nghiệp vụ nhân dịp mình xin post câu trả lời của vấn đề cho các member khác tham khảo cũng mong admin phụ trách phần này hãy hoạt động tích cực lên không nên như thế này
mọi người nhìn : Before :
17-04-2011%209-32-25%20PM.jpg

after
17-04-2011%209-34-52%20PM.jpg

và đáp án của vấn đề đây :
Code:
"Sub TachDong()
Application.ScreenUpdating = False
Dim n As Long, m As Long, k As Long
n = Sheet1.Range("A65000").End(xlUp).Row
k = Sheet2.Range("A65000").End(xlUp).Row + 1
If k > 2 Then Sheet2.Range("A2:P" & k).ClearContents
For i = 2 To n
m = Sheet1.Range("I" & i).Value
If m = 1 Then
k = Sheet2.Range("A65000").End(xlUp).Row + 1
Sheet2.Range("A" & k) = Sheet1.Range("A" & i)
Sheet2.Range("B" & k) = Sheet1.Range("B" & i)
Sheet2.Range("C" & k) = Sheet1.Range("C" & i)
Sheet2.Range("D" & k) = Sheet1.Range("D" & i)
Sheet2.Range("E" & k) = Sheet1.Range("E" & i)
Sheet2.Range("F" & k) = Sheet1.Range("F" & i)
Sheet2.Range("G" & k) = Sheet1.Range("G" & i)
Sheet2.Range("H" & k) = Sheet1.Range("H" & i)
Sheet2.Range("I" & k) = Sheet1.Range("I" & i)
Sheet2.Range("J" & k) = Sheet1.Range("J" & i)
Sheet2.Range("K" & k) = Sheet1.Range("K" & i)
Sheet2.Range("L" & k) = Sheet1.Range("L" & i)
Sheet2.Range("M" & k) = Sheet1.Range("M" & i)
Sheet2.Range("N" & k) = Sheet1.Range("N" & i)
Sheet2.Range("O" & k) = Sheet1.Range("O" & i)
Sheet2.Range("P" & k) = Sheet1.Range("P" & i)
Else
For j = 1 To m
k = Sheet2.Range("A65000").End(xlUp).Row + 1
Sheet2.Range("A" & k) = Sheet1.Range("A" & i)
Sheet2.Range("B" & k) = Sheet1.Range("B" & i)
Sheet2.Range("C" & k) = Sheet1.Range("C" & i)
Sheet2.Range("D" & k) = Sheet1.Range("D" & i)
Sheet2.Range("E" & k) = Sheet1.Range("E" & i)
Sheet2.Range("F" & k) = Sheet1.Range("F" & i)
Sheet2.Range("G" & k) = Sheet1.Range("G" & i)
Sheet2.Range("H" & k) = Sheet1.Range("H" & i) / m
Sheet2.Range("I" & k) = 1
Sheet2.Range("J" & k) = Sheet1.Range("J" & i)
Sheet2.Range("K" & k) = Sheet1.Range("K" & i)
Sheet2.Range("L" & k) = Sheet1.Range("L" & i)
Sheet2.Range("M" & k) = Sheet1.Range("M" & i)
Sheet2.Range("N" & k) = Sheet1.Range("N" & i)
Sheet2.Range("O" & k) = Sheet1.Range("O" & i)
Sheet2.Range("P" & k) = Sheet1.Range("P" & i)
Next
End If
Next
Application.ScreenUpdating = True
End Sub" (
Source:danketoan.com /Author: xuanthanh)
Mọi người hay admin giúp mình giải thích một chút về công thức này nha từ A - Z mong nhận được hồi đáp của forum hay admin
Nhân tiện ai có ebook về lập trình excel từ căn bản đến nâng cao xin chia sẻ cho mình
Thank You
Nguyen Quang Hung
 
Lần chỉnh sửa cuối:
Sory bạn nhiều nhé; mình nghĩ vấn đề của bạn không phức tạp đối với admins lắm đâu; tuy nhiên admins chắc là busy chưa kịp giúp bạn thôi. Thôi thì mình xin đại diện diễn đàn giúp bạn bằng công thức đây. Khuyến mãi phần giải thích luôn, có thể bạn nhìn công thức là biết rồi, nhưng có thể giúp các bạn khác yếu Excel hơn tham khảo để áp dụng.
Trong file ví dụ của mình, điều kiện bảng nguồn: Một TS phát sinh một dòng duy nhất; điều kiện bảng đích: mỗi đơn vị SL phát sinh 1 dòng.
Bảng nguốn có 3 cột: A,B,C là STT, Tên TS và SL (đặt name là STT,TS và SL)
Tại bảng đích, ta nghiên cứu công thức dòng có STT là 16

* STT=IF(F16>=SUM(SL),"",F16+1)
Lấy tổng SL làm số thứ tự, vì mỗi đơn vị SL là 1 dòng
* SL = IF(F17="","",1) : mặc định là 1
* Tên TS = IF(F17="","",IF(F17<SUM(OFFSET($C$2,,,INDEX(STT,MATCH(G16,TS,0),1)))+1,G16,INDEX(TS,MATCH(G16,TS,0)+1,1)))

** Tìm hiểu : SUM(OFFSET($C$2,,,INDEX(STT,MATCH(G16,TS,0),1)))
là SL lũy kế từ đầu bảng ($C$2) đến tên TS của dòng phía trên (tài sản B) = 15
** Vậy: IF(F12<SUM(OFFSET($C$2,,,INDEX(STT,MATCH(G11,TS,0),1)))+1,G16,
nghĩa là nếu STT của TS nếu nhỏ hơn hoặc bằng SL lũy kế, tên TS sẽ lặp lại như dòng trên.
** INDEX(TS,MATCH(G16,TS,0)+1,1))) Nếu lớn hơn, sẽ lấy TS ngay kế tiếp ở bảng nguồn. Tại dòng STT 16, Vì 16> tổng SL lũy kế (A+B) nên sẽ là TS C
Tóm lại, giải pháp của ta là: Tạo 1 bảng kết quả, mỗi loại TS sẽ có số dòng đúng bằng Sl của nó.
Hy vọng bạn có thể áp dụng vào file cụ thể của bạn từ ví dụ này. Có gì thì thảo luận tiếp nhé,
Thân,
 

File đính kèm

Lần chỉnh sửa cuối:
Hi All And Admin, minh khong hieu admin hay mọi người không quan tâm đến đề tài này hay sao không cho mình câu trả lời hay bởi vì forum giaiphapexcel còn yếu kém hay tại vì ít tham gia đóng góp cho forum thì nhân tiện cho mình xin lỗi sẽ cố gắng post bài cho forum nhiều hơn. Theo mình nghĩ forum excel đã phát triển rất lớn mạnh vậy mà khi mình cần tìm câu trả lời cho một vấn đề khó không admin phụ trách chuyên này ở đâu mà không giúp member. Nhưng mình không trách forum mà trách mình quá yếu trong nghiệp vụ nhân dịp mình xin post câu trả lời của vấn đề cho các member khác tham khảo cũng mong admin phụ trách phần này hãy hoạt động tích cực lên không nên như thế này
Bạn đừng có bức xúc như vậy chứ.

Diễn đàn là nơi để trao đổi, học hỏi. Không ai có nghĩa vụ phải làm giùm cho bạn cả kể cả Admin hay Mod. Hơn nữa bạn lại post bài trong mục này (Giải thích, gỡ rối, xử lý lỗi công thức). Bạn có làm cái công thức nào đâu mà nhờ người khác giải thích, gỡ rối hay xử lý lỗi???

Tôi tin chắc vấn đề của bạn không đến nỗi khó đối với nhiều thành viên của GPE. Chỉ có điều bạn post bài vào thứ 7, ít người vào diễn đàn. Sang đến đầu tuần thì bài của bạn bị "chìm" mất rồi.
 
Dear huuthang_bd, Lời đầu tiên mình xin lỗi vì đã viết quá lời mong mọi người thông cảm nhân tiện mình xin rút kinh nghiệm lần sau sẽ post bài đúng mục . Nhưng bạn huuthang ơi, mình đi làm ở cty ko đc vào mạng và tối đi làm về mệt nên tranh thủ cuối tuần về mới post bài đc.
Thank You For EveryBody .... ^|^
 
Web KT

Bài viết mới nhất

Back
Top Bottom