đếm dùm em dãy số này với! (1 người xem)

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

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

lammtv

Thành viên hoạt động
Tham gia
22/6/08
Bài viết
162
Được thích
28
Chi tiết em có ghi rõ trong file excel!nhờ các bạn giúp dùm!
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xài hàm tự tạo sau:

PHP:
Option Explicit
Function CountNum(SColumns As Range, Num As Byte) As Byte
 Dim Clls As Range
 For Each Clls In SColumns
   If Clls.Value = Num Then
      With Clls.Interior
         If .ColorIndex < 3 Or (.ColorIndex > 2 And Clls.Offset(1).Interior.ColorIndex < 3) Then
            CountNum = CountNum + 1
         End If
      End With
   End If
 Next Clls
End Function

Tại [J2] bạn nhập cú fáp =CountNum($D1:$D11,3)
 
Mình không dùng code được ko vậy bạn?khi mình chép file qua máy khác nó lại ko hiểu!phải cài code vào máy đó ah?
 
Mình không dùng code được ko vậy bạn?khi mình chép file qua máy khác nó lại ko hiểu!phải cài code vào máy đó ah?

Code thì chay trên file chứ sao lại chạy trên máy. Bạn chép file đã có code này thì máy nào chạy chẳng được.
 
Em có mấy chục file như vậy thì làm sao khi nào mở file lên cũng có thể dùng được vậy anh?mà chép sang máy khác cũng đọc dc!
 
Em có mấy chục file như vậy thì làm sao khi nào mở file lên cũng có thể dùng được vậy anh?mà chép sang máy khác cũng đọc dc!
Nếu muốn khi sử dụng file trên máy khác, thì bạn chép Code từ Addins sang Module của File những code nào dùng được cho File đó.
 
PHP:
option explicit
function countnum(scolumns as range, num as byte) as byte
 dim clls as range
 for each clls in scolumns
   if clls.value = num then
      with clls.interior
         if .colorindex < 3 or (.colorindex > 2 and clls.offset(1).interior.colorindex < 3) then
            countnum = countnum + 1
         end if
      end with
   end if
 next clls
end function

tại [j2] bạn nhập cú fáp =countnum($d1:$d11,3)
nhờ bạn kiểm tra dùm mình, cái code này đếm luôn những hàng xanh mà có hàng trắng phía dưới luôn rồi!mà ý mình thì ko muốn đếm những hàng xanh mà có hàng trắng phía dưới, chỉ đếm những hàng xanh nằm 1 mình và những hàng trắng thôi!
Thanks bạn rất nhiều!
 
Đây là 1 fần chủ iếu trong bảng số liệu của bạn

C|D|
4 | 3 | ĐẾM TRONG CỘT D CÓ BAO NHIÊU SỐ 1 TRONG HÀNG TRẮNG,
1|1|NẾU HÀNG XANH CÓ 1 HÀNG CŨNG ĐẾM LUÔN,
2|2|
3|3|NẾU HÀNG XANH CÓ CÁC HÀNG TRẮNG PHÍA DƯỚI THÌ KHÔNG QUAN TÂM
4|3|(NGHĨA LÀ KHI ĐẾM KHÔNG QUAN TÂM ĐẾN D1 VÀ D8)
1 | 3 |
1 | 1 |
2 | 3 |
1|2|
2|3|

Vậy xin hỏi lại bạn, tại [J2] bạn muốn nó bằng 5 hay bằng 6 hay bằng bao nhiêu, khi cần đếm số 3 ở cột D này vậy?
 
đây là 1 fần chủ iếu trong bảng số liệu của bạn

c|d|
4 | 3 | đếm trong cột d có bao nhiêu số 1 trong hàng trắng,
1|1|nếu hàng xanh có 1 hàng cũng đếm luôn,
2|2|
3|3|nếu hàng xanh có các hàng trắng phía dưới thì không quan tâm
4|3|(nghĩa là khi đếm không quan tâm đến d1 và d8)
1 | 3 |
1 | 1 |
2 | 3 |
1|2|
2|3|

vậy xin hỏi lại bạn, tại [j2] bạn muốn nó bằng 5 hay bằng 6 hay bằng bao nhiêu, khi cần đếm số 3 ở cột d này vậy?
tại j2 là 4 tại các ô d4,d5,d6,d10!cảm ơn bạn nhiều!
 
& đây, xin mời

PHP:
Option Explicit
Function CountNum(sColumn As Range, Num As Byte) As Byte
 Dim Clls As Range, MyColor As Integer
 For Each Clls In sColumn
   If Clls.Value = Num Then
      MyColor = Clls.Offset(1).Interior.ColorIndex
      If Clls.Row = 1 Then
         If MyColor < 3 Then CountNum = CountNum + 1
      Else
         If Clls.Interior.ColorIndex < 3 Then
            CountNum = 1 + CountNum
         Else
            If Clls.Offset(-1).Interior.ColorIndex < 3 And MyColor < 3 Then _
               CountNum = 1 + CountNum
         End If
      End If
   End If
 Next Clls
End Function

Dù sao dữ liệu của bạn chưa đặc trưng hết các trường hợp; Ví dụ 1 dòng xanh không fải dòng đầu cần fải có thì hay hơn!
 
số 1 có 2 số tại D2 và D7 mà bạn!sao mình dùng CODE chỉ có 1 vậy?
với lại sao mình thay đổi số 3 chỗ ô D6 thành số 1 thì tại ô J2 vẫn là số 4 (đáng lý phải là số 3 chứ)
nhờ bạn xem lại dùm!
 
Lần chỉnh sửa cuối:
Ai phải xem lại vậy?

(1)số 1 có 2 số tại D2 và D7 mà bạn!sao mình dùng CODE chỉ có 1 vậy?
(2) với lại sao mình thay đổi số 3 chỗ ô D6 thành số 1 thì tại ô J2 vẫn là số 4 (đáng lý phải là số 3 chứ)
nhờ bạn xem lại dùm!

(1) Dòng 6 cho tới dòng 8 bạn đang tô màu xanh; vậy trị [D7]=1 cũng đâu có được tính

(2) Cũng như trường hợp (1), dòng 7 màu xanh cùng với dòng 6, thì con gì nằm trong đó cũng thây kệ chứ!

Thật chán cho bạn quá đi mất! Tốn thời gian!
 
Xin lỗi bạn nhé!có lẽ bạn ko hiểu ý của mình rồi!mình muốn đếm số trong các hàng trắnghàng xanh nằm 1 mình (hàng xanh nằm 1 mình là các hàng 6 và 7), còn các hàng xanh 1 và 8 (là các hàng xanh có con là các hàng trắng) thì mình ko wan tâm!nghỉa là mình đổi số D3 và D8 thì ko ảnh hưởng gì đến kết quả của mình hết, còn mình đổi số trong các hàng 6 và 7 thì mình kết quả đếm của mình sẽ thay đổi!
Nhờ bạn giúp dùm mình!
Thanks bạn rất nhiều!
 
Nhờ các bạn giúp mình với!
 
Ôi!, Cái định nghĩa hàng xanh nằm một mình của bạn hết sức là trời ơi.

Xin lỗi bạn nhé!có lẽ bạn ko hiểu ý của mình rồi!mình muốn đếm số trong các hàng trắnghàng xanh nằm 1 mình (hàng xanh nằm 1 mình là các hàng 6 và 7), còn các hàng xanh 1 và 8 (là các hàng xanh có con là các hàng trắng) thì mình ko wan tâm!nghỉa là mình đổi số D3 và D8 thì ko ảnh hưởng gì đến kết quả của mình hết, còn mình đổi số trong các hàng 6 và 7 thì mình kết quả đếm của mình sẽ thay đổi!
Nhờ bạn giúp dùm mình!
Thanks bạn rất nhiều!

Lần cuối để hiểu nhau:


Bạn cần đếm số liệu cho trước nằm ở các dòng trắng (Không màu) & số liệu thuộc ô tô màu, nhưng ô dưới liền kề cũng tô màu?

Cái khó ở đây không fải chổ đi tìm thuật toán cho bạn; mà ở chổ hiểu được bạn!
Chúng ta không thể hiểu nhau qua tiếng mẹ đẽ rồi; Hay ta chuyển sang dùng tiếng "Lào", tiếng "Ý' đi nhễ!
 

Lần cuối để hiểu nhau:


Bạn cần đếm số liệu cho trước nằm ở các dòng trắng (Không màu) & số liệu thuộc ô tô màu, nhưng ô dưới liền kề cũng tô màu?

Cái khó ở đây không fải chổ đi tìm thuật toán cho bạn; mà ở chổ hiểu được bạn!
Chúng ta không thể hiểu nhau qua tiếng mẹ đẽ rồi; Hay ta chuyển sang dùng tiếng "Lào", tiếng "Ý' đi nhễ!

Xanh xanh, trắng trắng không rõ.
Cố hiểu được như thế này, thử xem:
 

File đính kèm

Mình cũng ko muốn làm phiền bạn nhiều!mình xin diễn đạt lại lần cuối cùng!
- Giá trị cần đếm nằm trong cột D
- Hàng xanh mà có hàng trắng phía dưới (là hàng số 1 và hàng số 8) thì mình ko quan tâm nghĩa là số trong D1 và D8 là gì thì kệ nó!
- Cái mình cần đếm là tất cả các hàng trắng (nghĩa là hàng 2,3,4,5,9,10.) + thêm các hàng xanh nằm 1 mình là các hàng 6 và 7 (nghĩa là ko có hàng trắng nằm phía dưới).
Tóm lại đối với bài toán này mình sẽ đếm các ô D2,D3,D4,D5,D6,D7,D9 và D10, khi giá trị trong các ô này thay đổi thì kết quả đếm của mình sẽ thay đổi!(ko đếm D1 và D8).
Thanks bạn đã hết lòng quan tâm đến mình!
 
(1) Dòng 6 cho tới dòng 8 bạn đang tô màu xanh; vậy trị [D7]=1 cũng đâu có được tính

(2) Cũng như trường hợp (1), dòng 7 màu xanh cùng với dòng 6, thì con gì nằm trong đó cũng thây kệ chứ!

Thật chán cho bạn quá đi mất! Tốn thời gian!
Công nhận "bi" giờ mới lờ mờ hiểu
Trúng trật hên xui nhé
Thân
 

File đính kèm

Mình cũng ko muốn làm phiền bạn nhiều!mình xin diễn đạt lại lần cuối cùng!
- Giá trị cần đếm nằm trong cột D
- Hàng xanh mà có hàng trắng phía dưới (là hàng số 1 và hàng số 8) thì mình ko quan tâm nghĩa là số trong D1 và D8 là gì thì kệ nó!
- Cái mình cần đếm là tất cả các hàng trắng (nghĩa là hàng 2,3,4,5,9,10.) + thêm các hàng xanh nằm 1 mình là các hàng 6 và 7 (nghĩa là ko có hàng trắng nằm phía dưới).
Tóm lại đối với bài toán này mình sẽ đếm các ô D2,D3,D4,D5,D6,D7,D9 và D10, khi giá trị trong các ô này thay đổi thì kết quả đếm của mình sẽ thay đổi!(ko đếm D1 và D8).
Thanks bạn đã hết lòng quan tâm đến mình!
Sao Bạn khoái dùng từ "Một mình" thế:
+ thêm các hàng xanh nằm 1 mình là các hàng 6 và 7
Phải nói là hàng xanh mà hàng kế tiếp không phải là hàng trắng, hoặc hàng xanh mà hàng kế tiếp cũng là hàng xanh, thế mới hiểu được,
từ một mình của Bạn không ổn rồi.
 
Bạn hãy đối chiếu lại hàm cũ xem sao nha?!

PHP:
Option Explicit
Function CountNum(SColumns As Range, Num As Byte) As Byte
 Dim Clls As Range
 For Each Clls In SColumns
   If Clls.Value = Num Then
      With Clls.Interior
         If .ColorIndex < 3 Or (.ColorIndex > 2 And Clls.Offset(1).Interior.ColorIndex > 2) Then
            CountNum = CountNum + 1
         End If
      End With
   End If
 Next Clls
End Function

Chúc vui!
 
thành thật sorry!bài của bạn viết đã đúng ý mình!khả năng diễn đạt của mình kém quá!thành thật cảm ơn các bạn trong diễn đàn đã tận tình giúp đỡ mình!
 
Mình tham gia 1 hàm nó cũng na ná hàm của bác HYen nhưng mình muốn không lệ thuộc vào màu tô cố định, miễn là nó thống nhất thôi.

PHP:
Option Explicit
Function Demso(Rg As Range, so As Integer) As Integer
Dim mau, i
mau = Rg.Cells(1).Interior.ColorIndex
For i = 1 To Rg.Cells.Count
If Rg.Cells(i) = so And Rg.Cells(i).Interior.ColorIndex <> mau Then Demso = Demso + 1
If Rg.Cells(i) = so And Rg.Cells(i).Interior.ColorIndex = mau And _
Rg.Cells(i + 1).Interior.ColorIndex = mau Then Demso = Demso + 1
Next
End Function

Cú pháp: =Demso(Vung dem, So dem)
Ví dụ đếm số 1 trong vùng D1:D10 ta viết =Demso(D1:D10,1)
 

File đính kèm

PHP:
Option Explicit
Function CountNum(SColumns As Range, Num As Byte) As Byte
 Dim Clls As Range
 For Each Clls In SColumns
   If Clls.Value = Num Then
      With Clls.Interior
         If .ColorIndex < 3 Or (.ColorIndex > 2 And Clls.Offset(1).Interior.ColorIndex > 2) Then
            CountNum = CountNum + 1
         End If
      End With
   End If
 Next Clls
End Function

Chúc vui!
lần này thì đúng rồi!thanks bạn rất rất nhiều!
 
tất cả các CODE sau này của các bạn đều đúng ý của mình hết!
Chân thành cảm ơn các thành viên trong diễn đàn đã giúp đỡ!
Mình sẽ rút kinh nghiệm về khả năng diễn đạt
Thanks!
 
TUONG TỰ BÀI ĐẾM VỪA RỒI!NHỜ CÁC BẠN TÍNH TỔNG DÙM MÌNH THEO ĐIỀU KIỆN CỦA CỘT E!CHI TIẾT NHỜ CÁC BẠN XEM FILE NHEN!
VẪN TÍNH TỔNG NHỮNG HÀNG TRẮNG VÀ hàng xanh mà hàng kế tiếp không phải là hàng trắng!NHƯNG THÊM ĐIỀU KIỆN CỦA CỘT E NỮA!
thanks!
 

File đính kèm

Mình định tạo 1 chủ đề mới nhưng do mình thấy điều kiện tính tổng này giống điều kiện đếm nên mình để chung!mong admin bỏ qua dùm nhen!
 
TUONG TỰ BÀI ĐẾM VỪA RỒI!NHỜ CÁC BẠN TÍNH TỔNG DÙM MÌNH THEO ĐIỀU KIỆN CỦA CỘT E!CHI TIẾT NHỜ CÁC BẠN XEM FILE NHEN!
VẪN TÍNH TỔNG NHỮNG HÀNG TRẮNG VÀ hàng xanh mà hàng kế tiếp không phải là hàng trắng!NHƯNG THÊM ĐIỀU KIỆN CỦA CỘT E NỮA!
thanks!
Còn nghĩ được cái gì mới nữa không bồ tèo, mỗi lúc "dzặn" ra một tí vậy
Nói "dzui" thôi nhé
Sửa code một tí là được thôi mà
Hihi
----------
Topic này "dzui" quá sao không thấy .....ra tay cho người ta học vậy Trời
 

File đính kèm

Thanks bạn nhiều!nếu mình ko dùng code, mình dùng hàm như bài #17 thì được ko vậy bạn?
 
Đã dính đến màu thì công thức trong excel khó gặm được lắm bạn à.

Mình với bạn ta thử tính ngược xem sao:
PHP:
Option Explicit
Function SumFor(LookupRange As Range, Num As Long)
 Dim Clls As Range
 With Application.WorksheetFunction
   SumFor = .SumIf(LookupRange.Offset(, 1), Num, LookupRange)
 End With
 For Each Clls In LookupRange
   If Clls.Offset(, 1).Value = Num Then
      If Clls.Interior.ColorIndex > 2 And Clls.Offset(1).Interior.ColorIndex < 3 Then _
         SumFor = SumFor - Clls.Value
   End If
 Next Clls
End Function
 

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

Back
Top Bottom