Phép nhân giữa các dòng với 1 ô theo chỉ định (1 người xem)

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

ultimatum86

Thành viên chính thức
Tham gia
19/11/10
Bài viết
79
Được thích
5
Trong file đính kèm, cột F tính tổng số lượng thiết bị bằng cách nhân số lượng thiết bị với số lượng tổng.
Nhưng khi copy sang tủ số 2 (CDE) thì công thức củ không chạy theo số lượng mới (10 tủ), mình phải điều chỉnh lại công thức.

Các bạn cho mình hỏi có cách nào khi mình copy xuống thì tự nó nhân với ô số lượng mới (E16) luôn được không?
 

File đính kèm

Lần chỉnh sửa cuối:
Theo tôi thì không thể làm được, vì nó chẳng quy luật nào cho việc địa chỉ ô nó nhận biết được cái ô nào là ô để nó nhân với.
 
Theo tôi thì không thể làm được, vì nó chẳng quy luật nào cho việc địa chỉ ô nó nhận biết được cái ô nào là ô để nó nhân với.
Em đoán mò là 13 thôi, nếu đúng 13 thì thử công thức này tại F5 xem sao và copy xuống :

=E5*OFFSET($E$3,INT((ROW()-4)/13)*13,,)
 
Em đoán mò là 13 thôi, nếu đúng 13 thì thử công thức này tại F5 xem sao và copy xuống :

=E5*OFFSET($E$3,INT((ROW()-4)/13)*13,,)
Công thức của bạn thật tuyệt vời, nhưng nó chỉ đúng khi tủ thứ 2 có đúng số hàng với cái đầu tiên thôi, vượt quá số dòng là bắt đầu tính sai.
Bạn xem lại giúp với.
 
Em đoán mò là 13 thôi, nếu đúng 13 thì thử công thức này tại F5 xem sao và copy xuống :

=E5*OFFSET($E$3,INT((ROW()-4)/13)*13,,)

Anh biết trước là nó có số hàng lung tung, nên không thể "phang" cho nó cách nhau bao nhiêu dòng, vả lại, nhiêu đó đâu đủ, STT nó lại tiếp tục tăng thì bó tay chấm muối tiêu luôn!
 
Anh biết trước là nó có số hàng lung tung, nên không thể "phang" cho nó cách nhau bao nhiêu dòng, vả lại, nhiêu đó đâu đủ, STT nó lại tiếp tục tăng thì bó tay chấm muối tiêu luôn!
hihih. Thanks bạn, biết là mong manh nhưng vẫn cứ hi vọng xem sao.
Cái này không biết viết code VBA thì có giải quyết được không nhĩ?.
 
hihih. Thanks bạn, biết là mong manh nhưng vẫn cứ hi vọng xem sao.
Cái này không biết viết code VBA thì có giải quyết được không nhĩ?.
Giải quyết được nhưng cũng phải có quy luật chứ, không có quy luật thì bó tay vì ai biết cái ô cần nhân ấy nó nằm ở chỗ
nào mà lập trình cho nó nhân được, nó chạy lung tung thì code cũng bó tay bạn ơi. hic hic hic
 
Giải quyết được nhưng cũng phải có quy luật chứ, không có quy luật thì bó tay vì ai biết cái ô cần nhân ấy nó nằm ở chỗ
nào mà lập trình cho nó nhân được, nó chạy lung tung thì code cũng bó tay bạn ơi. hic hic hic
Vậy mình sẽ cho nó giới hạn thử xem, mỗi tủ có 1 STT riêng mà, chạy giá trị từ STT n >> n+1, các dòng trong vùng này sẽ nhân với số lượng tổng thuộc dòng n ( ô số lượng tổng chung dòng với ô STT). Tương tự với n+1 >> n+2.
Bạn xem vậy có được không.
 
Vậy mình sẽ cho nó giới hạn thử xem, mỗi tủ có 1 STT riêng mà, chạy giá trị từ STT n >> n+1, các dòng trong vùng này sẽ nhân với số lượng tổng thuộc dòng n ( ô số lượng tổng chung dòng với ô STT). Tương tự với n+1 >> n+2.
Bạn xem vậy có được không.

Không cần giới hạn đâu. Nếu bạn muốn VBA thì nó có một quy luật đấy! Quy luật là số được nhân thì dưới nó một hàng là hàng không có giá trị (hàng rỗng) vì thế, code sẽ như sau:

Thủ tục cho nút lệnh:

PHP:
Private Sub CommandButton1_Click()
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
            Me.AutoFilterMode = False
            Dim ref As Range, rng As Range, vle As Double
            Set rng = Range(Range("E3"), Range("E65536").End(xlUp))
            rng.Offset(, 1).ClearContents
            For Each ref In rng
                If ref = "" Then
                    vle = ref.Offset(-1)
                    ref.Offset(-1, 1) = ""
                Else
                    ref.Offset(, 1) = vle * ref
                End If
            Next
            Range("A2:I2").AutoFilter
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub

Bạn thử đi, nếu không được thì ta tính tiếp.
 

File đính kèm

Khả quan hơn rồi đó, nhưng bạn sửa lại giúp mình xíu, vì trong các dòng đó nếu mình để trống 1 hàng sẽ sai ngay, bạn thêm điều kiện là: dưới nó 1 hàng không có giá trị + cột A tại hàng của nó phải có giá trị khác ""(đó là STT).
 
Khả quan hơn rồi đó, nhưng bạn sửa lại giúp mình xíu, vì trong các dòng đó nếu mình để trống 1 hàng sẽ sai ngay, bạn thêm điều kiện là: dưới nó 1 hàng không có giá trị + cột A tại hàng của nó phải có giá trị khác ""(đó là STT).

À, quên cái quy luật là số thứ tự nữa.

Sửa code đó lại thành:

Mã:
Private Sub CommandButton1_Click()
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
            Me.AutoFilterMode = False
            Dim ref As Range, rng As Range, vle As Double
            Set rng = Range(Range("E3"), Range("E65536").End(xlUp))
            rng.Offset(, 1).ClearContents
            For Each ref In rng
                If ref.Offset(, -4) = "" Then
                    If ref <> "" Then ref.Offset(, 1) = vle * ref
                Else
                    vle = ref
                End If
            Next
            Range("A2:I2").AutoFilter
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub
 
Lần chỉnh sửa cuối:
Nếu dữ liệu như trong bài #1, có số thứ tự & muốn dùng công thức thì thử cái này xem
Công thức ở [F3]:
=IF(C3="","",E3*OFFSET($A$2,MATCH(MAX($A$3:A3),$A$3:A3,0),4))
Kéo xuống
Thân
 
Nếu dữ liệu như trong bài #1, có số thứ tự & muốn dùng công thức thì thử cái này xem
Công thức ở [F3]:

Kéo xuống
Thân

Khi em phát hiện ra cái quy luật này (STT), thì dự định làm như bác Cò, nhưng lỡ phóng lao cái em VBA rồi nên theo lao luôn!

Mà đêm nay bác Cò có tạc lon chưa mà sao còn sáng suốt vậy?
 
Khi em phát hiện ra cái quy luật này (STT), thì dự định làm như bác Cò, nhưng lỡ phóng lao cái em VBA rồi nên theo lao luôn!

Mà đêm nay bác Cò có tạc lon chưa mà sao còn sáng suốt vậy?
Hôm qua tạc nhiều quá, hôm nay quất 3 lon thôi nên tỉnh queo
Buồn
Híc, cái này hình như là xì- pam thì phải
Híc
 
Trong file đính kèm, cột F tính tổng số lượng thiết bị bằng cách nhân số lượng thiết bị với số lượng tổng.
Nhưng khi copy sang tủ số 2 (CDE) thì công thức củ không chạy theo số lượng mới (10 tủ), mình phải điều chỉnh lại công thức.

Các bạn cho mình hỏi có cách nào khi mình copy xuống thì tự nó nhân với ô số lượng mới (E16) luôn được không?

Công thức cho ô F5

Mã:
=IF($D5<>"";$E5*LOOKUP(2;1/($A$3:$A5<>"");$E$3:$E5);"")

Kéo xuống dưới tới khi mỏi tay thì thôi.
 
Lần chỉnh sửa cuối:
Nếu dữ liệu như trong bài #1, có số thứ tự & muốn dùng công thức thì thử cái này xem
Công thức ở [F3]:

Kéo xuống
Thân
Công thức của Bác chỉ đúng khi copy thêm các dòng trong cùng 1 tủ thôi,
Khi copy nguyên tủ đó và paste xuống dưới sau đó đánh STT là 2 và chỉnh lại số lượng tổng VD như 10 ( tủ số 1 mình vẫn giữ nguyên ) thì không còn chính xác nữa, nó nhân với số lượng tổng của tủ số 1.

Bác xem lại giúp với nha.

Công thức cho ô F5

Code:

=IF($D5<>"";$E5*LOOKUP(2;1/($A$3:$A5<>"");$E$3:$E5);"")

Kéo xuống dưới tới khi mỏi tay thì thôi.
Công thức này bị báo lỗi rồi.
 
Công thức cho ô F5

Code:

=IF($D5<>"";$E5*LOOKUP(2;1/($A$3:$A5<>"");$E$3:$E5);"")

Kéo xuống dưới tới khi mỏi tay thì thôi.
Công thức này bị báo lỗi rồi.

Lỗi cái quỷ gì đâu chứ
Tôi copy "nguyên con" công thức và cho vào file của bạn đây
Nếu có chăng thì chỉ có thể là dấu phẩy và dấu chấm phẩy (tùy từng máy)
--------------------------------------------------------------------
Nếu dữ liệu như trong bài #1, có số thứ tự & muốn dùng công thức thì thử cái này xem
Công thức ở [F3]:

Kéo xuống
Thân

Nếu dựa vào STT thì có công thức này ngắn hơn nè anh Cò:
Mã:
=IF(C3="","",E3*LOOKUP(10^15,$A$3:$E3))
Công thức cũng nhập tại F3
 

File đính kèm

Lần chỉnh sửa cuối:
Lỗi cái quỷ gì đâu chứ
Tôi copy "nguyên con" công thức và cho vào file của bạn đây
Nếu có chăng thì chỉ có thể là dấu phẩy và dấu chấm phẩy (tùy từng máy)
--------------------------------------------------------------------


Nếu dựa vào STT thì có công thức này ngắn hơn nè anh Cò:
Mã:
=IF(C3="","",E3*LOOKUP(10^15,$A$3:$E3))
Công thức cũng nhập tại F3
Tuyệt vời, file đính kèm của bạn chạy rất chính xác. Chân thành cảm ơn mọi người.
 

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

Back
Top Bottom