Vậy tại sao không thực hiện nhập theo cách trình bày ở sheet "TINH" luôn...Chào các bạn, mình mong các bạn làm liên kết này dùm mình, bên sheet có sẵn là ô mình tự nhập vô, nhưng mình muốn bên sheet Tinh nó tự động ra kết quả giống trong sheet Tinh, mình phải dùng công thức nào ạh
Theo quy định thì số hóa đơn không được trùng lắp (cho nhiều người), trong File cột B (số hóa đơn) của sheet TINH thì bạn cho hóa đơn trùng lắp cho nhiều người là không đúng quy định (đọc là hiểu ngay là giả định nhưng chưa thực tế).Chào các bạn, mình mong các bạn làm liên kết này dùm mình, bên sheet có sẵn là ô mình tự nhập vô, nhưng mình muốn bên sheet Tinh nó tự động ra kết quả giống trong sheet Tinh, mình phải dùng công thức nào ạh
Cái này là tính lương 1 đơn hàng, 1 hóa đơn cho nhiều người làm bao nhiêu %, thì mình muốn 1 hóa đơn như vậy ra bao nhiêu % cho nó đơn giản rồi mình sẽ dựa vào đó để tính lương từng người, nên mình mong mọi người giúp mình có công thức cho công việc giản đơn hơn, chứ bình thường mình phải copy, insert hàng, rồi lại tính phần trăm, nên hơi bị cực, nên mong các bạn giúp đỡ mình ah. (do tính lương cuối tháng có nhiều đơn hàng).Theo quy định thì số hóa đơn không được trùng lắp (cho nhiều người), trong File cột B (số hóa đơn) của sheet TINH thì bạn cho hóa đơn trùng lắp cho nhiều người là không đúng quy định (đọc là hiểu ngay là giả định nhưng chưa thực tế).
Góp ý cho bạn, cũng như góp ý chung cho các thành viên có ví dụ hoặc nếu dữ liệu có giả định thì cũng nên thực tế để người giúp đọc và hiểu để trợ giúp.
Sub Vidu()
Dim Arr(), Result(), maxRow As Long, maxCol As Long
Dim j As Long, i As Long, k As Long, p
Arr = Sheet1.Range("B2:J6").Value
maxRow = UBound(Arr, 1)
maxCol = UBound(Arr, 2)
ReDim Result(1 To maxRow * (maxCol - 2), 1 To 4)
For i = 2 To maxRow
For k = 3 To maxCol
p = Val(Arr(i, k))
If p > 0 Then
p = p / 100
j = j + 1
Result(j, 1) = j
Result(j, 2) = Arr(i, 1)
Result(j, 3) = p * Arr(i, 2)
Result(j, 4) = Arr(1, k)
End If
Next k
Next i
If j > 0 Then
Sheet2.Range("A3").Resize(65000, 4).ClearContents
Sheet2.Range("A3").Resize(j, 4) = Result
End If
End Sub
=INDEX($B$3:$B$6,SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6),""),ROW(A1))-2,1)
=INDEX($C$3:$C$6,SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6),""),ROW(A1))-2,1)*INDEX($D$3:$J$6,SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6),""),ROW(A1))-2,--RIGHT(SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6)*100000+COLUMN($D$3:$J$6),""),ROW(A1)),3)-3)
=INDEX($D$2:$J$2,1,--RIGHT(SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6)*100000+COLUMN($D$3:$J$6),""),ROW(A1)),3)-3)
Cám ơn bạn nhiều nha.Tại sheet CO SAN bạn dùng công thức sau nhé, tất cả đều kết thúc bằng CTRL + SHIFT + ENTER
Tại A10
Tại B10Mã:=INDEX($B$3:$B$6,SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6),""),ROW(A1))-2,1)
Tại C10Mã:=INDEX($C$3:$C$6,SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6),""),ROW(A1))-2,1)*INDEX($D$3:$J$6,SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6),""),ROW(A1))-2,--RIGHT(SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6)*100000+COLUMN($D$3:$J$6),""),ROW(A1)),3)-3)
Mã:=INDEX($D$2:$J$2,1,--RIGHT(SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6)*100000+COLUMN($D$3:$J$6),""),ROW(A1)),3)-3)
Tại sheet CO SAN bạn dùng công thức sau nhé, tất cả đều kết thúc bằng CTRL + SHIFT + ENTER
Tại A10
Tại B10Mã:=INDEX($B$3:$B$6,SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6),""),ROW(A1))-2,1)
Tại C10Mã:=INDEX($C$3:$C$6,SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6),""),ROW(A1))-2,1)*INDEX($D$3:$J$6,SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6),""),ROW(A1))-2,--RIGHT(SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6)*100000+COLUMN($D$3:$J$6),""),ROW(A1)),3)-3)
Mã:=INDEX($D$2:$J$2,1,--RIGHT(SMALL(IF($D$3:$J$6<>"",ROW($D$3:$J$6)*100000+COLUMN($D$3:$J$6),""),ROW(A1)),3)-3)
Cám ơn bạn nhiều@Chủ thớt:
Có lý do không muốn làm:
- Mới gửi bài lên đã gửi nhiều bài liên tục.
- Cấu trúc nhập ở sheet "CO SAN" không đúng chuẩn, nhập kiểu đó như tự treo cổ. Tất cả phương án ưu tiên về cách xây dựng cấu trúc dữ liệu chuẩn.
PHP:Sub Vidu() Dim Arr(), Result(), maxRow As Long, maxCol As Long Dim j As Long, i As Long, k As Long, p Arr = Sheet1.Range("B2:J6").Value maxRow = UBound(Arr, 1) maxCol = UBound(Arr, 2) ReDim Result(1 To maxRow * (maxCol - 2), 1 To 4) For i = 2 To maxRow For k = 3 To maxCol p = Val(Arr(i, k)) If p > 0 Then p = p / 100 j = j + 1 Result(j, 1) = j Result(j, 2) = Arr(i, 1) Result(j, 3) = p * Arr(i, 2) Result(j, 4) = Arr(1, k) End If Next k Next i If j > 0 Then Sheet2.Range("A3").Resize(65000, 4).ClearContents Sheet2.Range("A3").Resize(j, 4) = Result End If End Sub