Lọc số tuần và dựa vào dữ liệu trùng nhau để cho ra kết quả mặc định (1 người xem)

  • Thread starter Thread starter th7
  • Ngày gửi Ngày gửi
Liên hệ QC

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

th7

Thành viên thường trực
Tham gia
3/3/15
Bài viết
215
Được thích
52
Giới tính
Nam
Em chào các Anh Chị,
Em có bài viết nhờ các Anh Chị hỗ trợ để có thể có được kết quả tại cột H.
1680526560518.png

Thiệt sự, bài này, em cũng khó giải thích mong lời nhắn dưới đây, mọi người có thể hỗ trợ em.
Trong tệp đính kèm, em có làm bằng tay một số dữ liệu có kết quả của tuần 14 và tuần 15, ở hình trên, em cắt một khúc trong tuần số 15.

Có ba cột dữ liệu cần xem xét để có được giá trị mặc định là "0.5" hoặc là "0" tại cột H
Đầu tiên, xét điều kiện tại cột F gom về cùng một tuần
Tiếp theo đó, kiểm tra các ô trông cột C, nếu có những giá trị trùng nhau liên tiếp và sau đó kiểm tra các ô trong cột A, nếu các ô trong cột A giống đều và tương ứng với cột C thì tại cột H, sẽ nhập giá trị 0.5 (hrs) còn các ô khác trùng thì nhập là 0 (hrs),.
Em cảm ơn.
 

File đính kèm

Em chào các Anh Chị,
Em có bài viết nhờ các Anh Chị hỗ trợ để có thể có được kết quả tại cột H.
View attachment 288406

Thiệt sự, bài này, em cũng khó giải thích mong lời nhắn dưới đây, mọi người có thể hỗ trợ em.
Trong tệp đính kèm, em có làm bằng tay một số dữ liệu có kết quả của tuần 14 và tuần 15, ở hình trên, em cắt một khúc trong tuần số 15.

Có ba cột dữ liệu cần xem xét để có được giá trị mặc định là "0.5" hoặc là "0" tại cột H
Đầu tiên, xét điều kiện tại cột F gom về cùng một tuần
Tiếp theo đó, kiểm tra các ô trông cột C, nếu có những giá trị trùng nhau liên tiếp và sau đó kiểm tra các ô trong cột A, nếu các ô trong cột A giống đều và tương ứng với cột C thì tại cột H, sẽ nhập giá trị 0.5 (hrs) còn các ô khác trùng thì nhập là 0 (hrs),.
Em cảm ơn.
Có vẻ giải thích không giống với kết quả trong file cụ thể:
Dòng 7 và 8 giống nhau từ cột A đến cột G : kết quả cột H là 0.5
Dòng 14 và 15 giống nhau từ cột A đến cột G : kết quả cột H là 0.5
Nhưng Dòng 16 và 17 giống nhau từ cột A đến cột G : kết quả cột H lại là 0.
tương tự Dòng 18 và 19 và căp dòng 20 và 21 giống nhau từ cột A đến cột G : kết quả cột H lại là 0.
Đén cặp dòng 42 và 43 giống nhau từ cột B đến cột F chỉ cột A khác và cột G khác và cột kết quả (cột H) cũng khác nhau 0.5 và 0
Vậy thì điều kiện là gì? Quy luật là thế nào?
Nghe nói máy bạn bị hỏng mà.
 
Có vẻ giải thích không giống với kết quả trong file cụ thể:
Dòng 7 và 8 giống nhau từ cột A đến cột G : kết quả cột H là 0.5
Dòng 14 và 15 giống nhau từ cột A đến cột G : kết quả cột H là 0.5
Nhưng Dòng 16 và 17 giống nhau từ cột A đến cột G : kết quả cột H lại là 0.
tương tự Dòng 18 và 19 và căp dòng 20 và 21 giống nhau từ cột A đến cột G : kết quả cột H lại là 0.
Đén cặp dòng 42 và 43 giống nhau từ cột B đến cột F chỉ cột A khác và cột G khác và cột kết quả (cột H) cũng khác nhau 0.5 và 0
Vậy thì điều kiện là gì? Quy luật là thế nào?
Nghe nói máy bạn bị hỏng mà.
Em chào Anh Hương ạ
Em xin diễn giải thêm thông tin như dưới:
1680538378213.png

Sau khi em "Merge" các ô trong cột A và cột C thì sẽ có dữ liệu như trên hình để nhìn trực quan hơn.
Sẽ có các trường hơp như Anh có mô tả:
Trường hợp 1:
Dòng 7 và 8, sau khi "Merge" thì cột A có 1 dữ liệu, cột B có 1 dữ liệu, nếu A và B có một dữ liệu thì cột H sẽ điền 0.5 hết
Trường hợp 2:
Dòng 14 tới dòng 21, sau khi "Merge" thì cột A sẽ có 4 dòng dữ liệu, cột C có 1 dòng dữ liệu, và dựa vào cột A, thì mình sẽ chọn ra một dòng để nhập giá trị 0.5 vào cột H (do dữ liệu được "Sort" nên em chọn mặc định dòng trên cùng để nhập dữ liệu 0.5, còn các dòng dưới, em để là 0, miễn sao, sau khi "Merge" Nếu cột A có nhiều dòng thì có một dòng của giá trị được nhập 0.5 là được Anh ạ, không nhất thiết phải mặc định dòng trên cùng)
Trường hợp 3:
Dòng 34, 36, 37, tại cột A là từng giá trị khác nhau (có 3 giá trị khác nhau), cột C sau khi "Merge" lại thì có 1 dòng dữ liệu. nên cũng chọn một dòng đầu để nhập 0.5 và các dòng còn lại, nhập là 0.
Trường hợp 4:
Dòng 42, 43, là tương tự trường hợp 3.
Trường hợp 5:
Dòng 44, là trong cột A và cột C, các ô chỉ có một giá trị nên mặc định để là 0.5.
Các trường hợp nhập giá trị là 0 thì có thể để rỗng cũng được ạ.
Em cảm ơn.
 
Em chào các Anh Chị,
Em có bài viết nhờ các Anh Chị hỗ trợ để có thể có được kết quả tại cột H.
View attachment 288406

Thiệt sự, bài này, em cũng khó giải thích mong lời nhắn dưới đây, mọi người có thể hỗ trợ em.
Trong tệp đính kèm, em có làm bằng tay một số dữ liệu có kết quả của tuần 14 và tuần 15, ở hình trên, em cắt một khúc trong tuần số 15.

Có ba cột dữ liệu cần xem xét để có được giá trị mặc định là "0.5" hoặc là "0" tại cột H
Đầu tiên, xét điều kiện tại cột F gom về cùng một tuần
Tiếp theo đó, kiểm tra các ô trông cột C, nếu có những giá trị trùng nhau liên tiếp và sau đó kiểm tra các ô trong cột A, nếu các ô trong cột A giống đều và tương ứng với cột C thì tại cột H, sẽ nhập giá trị 0.5 (hrs) còn các ô khác trùng thì nhập là 0 (hrs),.
Em cảm ơn.
Kiểm tra lại . .
Mã:
Sub ABC()
  Dim arr(), res(), dic As Object, sh As Worksheet, key$, sRow&, i&
 
  Set dic = CreateObject("Scripting.Dictionary")
  Set sh = Sheets("Data")
  If sh.AutoFilterMode Then sh.AutoFilter.ShowAllData
  arr = sh.Range("A3", sh.Range("F" & Rows.Count).End(xlUp)).Value
  sRow = UBound(arr)
  ReDim res(1 To sRow, 1 To 1)
  For i = 1 To sRow
    key = arr(i, 6) & "|" & arr(i, 3)
    If Not dic.exists(key) Then
      dic.Add key, ""
      dic.Add key & "|" & arr(i, 1), ""
      res(i, 1) = 0.5
    ElseIf dic.exists(key & "|" & arr(i, 1)) Then
      res(i, 1) = 0.5
    End If
  Next i
  sh.Range("H3").Resize(sRow, 1) = res
End Sub
 
Kiểm tra lại . .
Mã:
Sub ABC()
  Dim arr(), res(), dic As Object, sh As Worksheet, key$, sRow&, i&
 
  Set dic = CreateObject("Scripting.Dictionary")
  Set sh = Sheets("Data")
  If sh.AutoFilterMode Then sh.AutoFilter.ShowAllData
  arr = sh.Range("A3", sh.Range("F" & Rows.Count).End(xlUp)).Value
  sRow = UBound(arr)
  ReDim res(1 To sRow, 1 To 1)
  For i = 1 To sRow
    key = arr(i, 6) & "|" & arr(i, 3)
    If Not dic.exists(key) Then
      dic.Add key, ""
      dic.Add key & "|" & arr(i, 1), ""
      res(i, 1) = 0.5
    ElseIf dic.exists(key & "|" & arr(i, 1)) Then
      res(i, 1) = 0.5
    End If
  Next i
  sh.Range("H3").Resize(sRow, 1) = res
End Sub
Dạ, Em cảm ơn Anh HieuCD hỗ trợ em bài viết trên.
Kết quả đúng mong muốn rồi ạ.
 
Web KT

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

Back
Top Bottom