Phân đoạn trong Excel?? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nguyentieu

Thành viên hoạt động
Tham gia
12/2/09
Bài viết
109
Được thích
10
Nghề nghiệp
Sinh viên
Em đang có một vấn đề như sau muốn nhờ ACE chỉ giáo:
Nhập vào một ô bất kì trong Excel 1 giá trị chẳng hạn như 10.5 thì tự động chia nhỏ thành 10 khoảng trong đó 9 khoảng 1 và 1 khoảng 0.5.
Chi tiết e có đính kèm trong file excel.
Thanks
 

File đính kèm

Bạn thử dùng công thức sau, fill xuống!
Tác giả nói rằng:
Em đang có một vấn đề như sau muốn nhờ ACE chỉ giáo:
Nhập vào một ô bất kì trong Excel 1 giá trị chẳng hạn như 10.5 thì tự động chia nhỏ thành 10 khoảng trong đó 9 khoảng 1 và 1 khoảng 0.5.
Chi tiết e có đính kèm trong file excel.
Thanks
Tôi nghĩ chắc luôn luôn là 10 khoảng, có nghĩa là chia số nhập 10 phần, 9 cell trên là phần nguyên của phép chia và cell thứ 10 là phần thừa
Đúng ý tác giả không nhỉ?
 
Bạn thử dùng công thức sau, fill xuống!

Cảm ơn bạn!
Bạn có thể nói thêm cho mình là "Nên hiểu công thức này như thế nào vậy?"
Bởi vì khoảng chia của mình sao động trong khoảng từ 1, 1.1, 1.2,...,2 chứ ko phải lúc nào cũng chia đều là 1 cả.
Còn một việc nữa là có cách nào tự chương trình nó chia cho mình không nhỉ? (nghĩa là mình ko phải fill)
 
Cảm ơn bạn!
Bạn có thể nói thêm cho mình là "Nên hiểu công thức này như thế nào vậy?"
Bởi vì khoảng chia của mình sao động trong khoảng từ 1, 1.1, 1.2,...,2 chứ ko phải lúc nào cũng chia đều là 1 cả.
Còn một việc nữa là có cách nào tự chương trình nó chia cho mình không nhỉ? (nghĩa là mình ko phải fill)
Muốn tự động và hiệu quả cao ta dùng code VBA ---> Nếu bạn đồng ý thì chúng ta tiếp tục (đại khái sẽ tạo 1 Form cho bạn nhập điều kiện đầu vào)
 
Muốn tự động và hiệu quả cao ta dùng code VBA ---> Nếu bạn đồng ý thì chúng ta tiếp tục (đại khái sẽ tạo 1 Form cho bạn nhập điều kiện đầu vào)

Cảm ơn bạn.
Bạn có thể giới thiệu cho mình 1 đoạn code để giải quyết vấn đề này ko??
 
Cảm ơn bạn!
Bạn có thể nói thêm cho mình là "Nên hiểu công thức này như thế nào vậy?"
Bởi vì khoảng chia của mình sao động trong khoảng từ 1, 1.1, 1.2,...,2 chứ ko phải lúc nào cũng chia đều là 1 cả.
Còn một việc nữa là có cách nào tự chương trình nó chia cho mình không nhỉ? (nghĩa là mình ko phải fill)
Phân bao nhiêu cũng đươc, nhưng bạn hãy đưa quy luật rõ ràng, có thí dụ mà bạn cũng hà tiện nữa, hãy nêu quy luật và vài thí dụ điển hình thì anh em mới hiểu để giúp bạn chứ. Hổng biết có phải tại làm mấy ve (mừng Việt Nam chiến thắng) hông nữa mà mình đọc hoài cũng chẳng hiểu
Thân
 
Cảm ơn mọi ngưởi, có thể yêu cầu mình đưa ra là chưa cụ thể, mình sẽ mô tả cụ thể như sau:
Ví dụ: theo phương thẳng đứng từ trên xuống có 2 đoạn thẳng đoạn 1 dài 6,25m (C4), đoạn 2 dài 5,5m (C5). Yêu cầu chia mỗi đoạn thẳng thành các đoạn <= 2m, kết quả như ở vùng (H4:H10).
E đã đính kèm file kèm theo hình minh họa.
Mong các ACE chỉ giáo.
Thanks
 

File đính kèm

Lần chỉnh sửa cuối:
Ko có bác nào giúp e với sao?? ////////////
 
Cảm ơn mọi ngưởi, có thể yêu cầu mình đưa ra là chưa cụ thể, mình sẽ mô tả cụ thể như sau:
Ví dụ: theo phương thẳng đứng từ trên xuống có 2 đoạn thẳng đoạn 1 dài 6,25m (C4), đoạn 2 dài 5,5m (C5). Yêu cầu chia mỗi đoạn thẳng thành các đoạn <= 2m, kết quả như ở vùng (H4:H10).
E đã đính kèm file kèm theo hình minh họa.
Mong các ACE chỉ giáo.
Thanks

Không biết có phải là như thế này không? (Làm đại, trúng / trật = hên xui + ráng chịu)
 

File đính kèm

Cảm ơn bác, công thức bác đưa ra rất ok tuy nhiên khi có nhiều đoạn thẳng có chiều dài khác nhau thì phải làm thủ công nên hơi cực. Bác có thế giúp e chỗ đó nữa ko ạ?
 
Cảm ơn bác, công thức bác đưa ra rất ok tuy nhiên khi có nhiều đoạn thẳng có chiều dài khác nhau thì phải làm thủ công nên hơi cực. Bác có thế giúp e chỗ đó nữa ko ạ?

Cụ thể là thế nào?


Chia thành nhiều đoạn có độ dài khác nhau ah? cụ thể là chia theo kiểu cách nào? mấy đoạn lớn (dài), mấy đoạn nhỏ (ngắn), bao nhiêu đoạn nhầng nhầng ??? --=0 --=0 --=0
 
Cụ thể như trong file e đã gửi đấy ạ. Sau khi chia đoạn 6.25 (ĐOẠN 1) rồi thì tiếp tục chia đoạn 5.5 (ĐOẠN 2). File bác giúp e chỉ chia 1 đoạn 6.25 thôi!
 
Cụ thể như trong file e đã gửi đấy ạ. Sau khi chia đoạn 6.25 (ĐOẠN 1) rồi thì tiếp tục chia đoạn 5.5 (ĐOẠN 2). File bác giúp e chỉ chia 1 đoạn 6.25 thôi!

Trời ơi, nhập số 5.5 vô B1 và độ dài đoạn lớn nhất vô B2 là nó tự chia rồi còn gì?
 
Trời ơi, nhập số 5.5 vô B1 và độ dài đoạn lớn nhất vô B2 là nó tự chia rồi còn gì?
Bác hiểu sai ý em rồi. E muốn là khi nhập vào hai ô là 6.25 và 5.5 thì sau khi chia xong đoạn 6.25 rồi thì chia tiếp cho đoạn 5.5 ko tách ra làm 2 lần như bác. Cụ thể như file e gửi sau.
 

File đính kèm

File đính kèm

Xem thế này đã đúng ý chưa?

Thật tuyệt vời!/-*+//-*+/

Rất cảm ơn bác boyxin đã giúp e.
Bác có thể bớt chút thời gian để hướng dẫn e sử dụng file đó ko ạ? E nhìn vào mà ko hiểu tại sao làm được như vậy? Tại sao đi đưa chuột vào ô nhập chiều dài đoạn thì lại có "comment" (hình như ko phải vậy) là: "Input number here"? E có đọc qua macro nhưng cũng ko hiểu? Mong bác giúp đỡ.
Thanks
 
Thật tuyệt vời!/-*+//-*+/

Rất cảm ơn bác boyxin đã giúp e.
Bác có thể bớt chút thời gian để hướng dẫn e sử dụng file đó ko ạ? E nhìn vào mà ko hiểu tại sao làm được như vậy? Tại sao đi đưa chuột vào ô nhập chiều dài đoạn thì lại có "comment" (hình như ko phải vậy) là: "Input number here"? E có đọc qua macro nhưng cũng ko hiểu? Mong bác giúp đỡ.
Thanks

paperclip.png
1) Phần code là thực hiện theo yêu cầu của bạn thôi (Thay đoạn code sau đây gọn hơn chút và chuẩn hơn)
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("b:b")) Is Nothing Then
Application.ScreenUpdating = False
    [e2].CurrentRegion.Offset(1).Clear
If (IsNumeric([b1]) = False) Or [b1] <= 0 Then Exit Sub
For Each clls In Range([b2], [b65535].End(xlUp).Offset(1))
    If (IsNumeric(clls) = True) And (clls > 0) Then
        d = d + 1: j = 0
        [e65535].End(xlUp).Offset(1, 1) = [f1] & " " & d
        Do: j = j + 1: On Error Resume Next
            With [f65535].End(xlUp).Offset(j - 1, -2)
                .Offset(, 1) = IIf(clls < [b1] * j, clls - [b1] * (j - 1), [b1])
                .Resize(, 3).BorderAround LineStyle:=1
                .Resize(, 3).Borders(11).LineStyle = 1
                .Resize(, 3).Interior.ColorIndex = 35 + (d Mod 2)
            End With
        Loop Until [b1] * j >= clls
    End If
Next
    If d > 0 Then Range([d2], [e1].End(xlDown).Offset(, -1)) = Evaluate("ROW(a:a)")
Application.ScreenUpdating = True
End If
End Sub
2) Bạn chọn ô có ... "Input Number Here!". Vào Data\Validation... chọn thẻ Input Message ;;;;;;;;;;; ;;;;;;;;;;; ;;;;;;;;;;; +-+-+-+ +-+-+-+ +-+-+-+ --=0 --=0 --=0
 

File đính kèm

Lần chỉnh sửa cuối:
paperclip.png
1) Phần code là thực hiện theo yêu cầu của bạn thôi (Thay đoạn code sau đây gọn hơn chút và chuẩn hơn)

Hjx.. e gặp chút rắc rối khi vận dụng nó vào trong bài làm của e. Khi đó phải di chuyển các ô xuống dòng thứ 10 của sheet. Còn ô Phần lớn nhất B2 thì nằm tại vị trí B9.
Có cách nào chuyển cái code của bác thành một công thức ko vậy?

Mong bác giúp e chỉnh lại code.
Thanks
 
Hjx.. e gặp chút rắc rối khi vận dụng nó vào trong bài làm của e. Khi đó phải di chuyển các ô xuống dòng thứ 10 của sheet. Còn ô Phần lớn nhất B2 thì nằm tại vị trí B9.
Có cách nào chuyển cái code của bác thành một công thức ko vậy?

Mong bác giúp e chỉnh lại code.
Thanks

cấu trúc file của bạn thế nào, chỗ nào cần nhập số, chô nào hiện kết quả, bạn xem code có thể thấy mà, hoạc là gửi file để mình sửa code giúp
 
Web KT

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

Back
Top Bottom