Tìm giá trị dân số theo tỉnh - huyện - xã

Liên hệ QC

tranquocduy

Thành viên mới
Tham gia
11/2/07
Bài viết
16
Được thích
2
Tôi có file noidung.xls (đính kèm), tôi cần tìm giá trị dân số từ sheet data theo điều kiện đã chọn là tỉnh, huyện, xã
 

File đính kèm

  • noidung.xls
    32 KB · Đọc: 69
Tôi có file noidung.xls (đính kèm), tôi cần tìm giá trị dân số từ sheet data theo điều kiện đã chọn là tỉnh, huyện, xã
Công thức tại D4
D4=SUMPRODUCT((data!$C$2:$C$31='bao cao'!$C$2)*(data!$D$2:$D$31='bao cao'!$B4)*(data!$E$2:$E$31='bao cao'!$C4)*(data!$F$2:$F$31))
Nhưng sh Data của bạn thấy không thỏa điều kiện nào, do bạn dùng validation với những list mà data không có.
VD: Chọn tỉnh: camau, huyện cainuoc, nhưng phần chọn tên địa phương thì không có xã tân hưng...
Cái vụ chọn validation này biết vận dụng cũng rất hay, khi bạn chọn tỉnh camau thì phần huyện sẽ cho bạn chọn những huyện thuốc tỉnh camau và tương tự như địa phương.
Và cũng chưa hiểu bạn muốn làm = công thức hay code.
 
Thật là tệ hết sức nói!

(1) Tệ thứ nhất là tiêu đề của topic, thật chẳng ra làm sao;

(2) Tệ nữa là Dữ liệu đưa lên thiếu nghiêm túc; Ai lại không đủ thời gian để ghi tiếng Việt tên tỉnh Cà mau, dù là điều đó có thể bằng nhiều cách để sản ra hàng loạt tư giống nhau trong CSDL;

(3) Ai lại dùng "hcainuoc" để biểu thị cho huyện Cái nước làm vậy.
Trong những trường hợp này, người ta tách làm 2 trường, 1 trường là [MaHuyen] & trường thứ 2 là [TenHuyen]
Như sau đây:
|MaTinh|TenTinh|
|08|TP Hồ Chí Minh|
|69|Cà Mau|
|89|Bạc liêu|
||.. .|
|MaHn|TenHuyen|
|89AA|Phước long|
|89AB|Hồng Vân|
|89BA|Thới bình|
||.. .|
Bạn nghiêm túc với mình thì mọi người mới gởi cho bạn những lời khuyên hay cách làm nghiêm túc được.
 
Cám ơn ThuNghi và ChanhQT@ đã góp ý. Tôi gởi lại nội dung file có cấu trúc như đã góp ý. Nhờ giúp đỡ về validation này, khi chọn tỉnh camau thì phần huyện sẽ cho bạn chọn những huyện thuốc tỉnh camau và tương tự như địa phương.
Tôi muốn sử dụng công thức và code.
Và hướng dẫn code để chép thêm các dòng tiếp theo.

Xin cám ơn.
 

File đính kèm

  • noidung.xls
    27 KB · Đọc: 27
Cái bảng mã của bạn vẫn chưa đạt, không cần cột số TT bạn thay vào đó:
-Đối với mã huyện thì thuộc tỉnh nào,
-Mã xã thuộc huyện nào
Như bảng của bạn mà mình là dân Bắc nên có thách đố cũng không phân biệt được.
 
Vâng, Cám ơn. Tôi gởi lại file này như sau
 

File đính kèm

  • noidung.xls
    27 KB · Đọc: 31
Mình tham gia thêm:
-Không nên đặt mã hoàn toàn chữ số dễ nhầm lẫn giữa Text và Number gây khó khăn cho việc tìm kiếm. Trong File nhiều huyện không có xã gây lỗi.
-Nói chung yêu cầu của bạn dùng Validation nên rắc rối quá. Dùng ComboBox thì nhanh hơn nhiều. Dùng Valid. thì dùng xong phải xoá đi vì nguồn thay đổi sinh lỗi. Cụ thể chỉ chọn được dòng cuối còn các dòng khác bị loại bỏ

Lưu ý: Có 1 số huyện không có danh sách xã nên khi chọn huyện xong không chọn được xã.
 

File đính kèm

  • noidungSealand.xls
    72 KB · Đọc: 61
Lần chỉnh sửa cuối:
cách dùng validation

Vấn đề Bạn Duy cần cũng là vấn đề mà tôi đang quan tâm. Các bạn có thể chỉ giúp cho cách làm thế nào khi nhập vàp cột mã huyện theo danh sách list thì cột mã xã chỉ cho phép nhập danh sách mã các xã trong huyện đó. Chân thành cám ơn.
gởi các bạn file danh sách huyện, xã của tỉnh Cà Mau.

Mong được các cao minh chỉ giáo

Lưu ý bạn nào cần file danh sách 63 tỉnh thành tôi sẽ mail cho
 

File đính kèm

  • camau.rar
    701.6 KB · Đọc: 91
Mình xin đề xuất bảng mã như vầy các bạn góp ý thêm

Mã của mỗi đơn vị hành chính từ cấp xã trở lên đều là chuỗi gồm 4 ký tự (Hay có ít nhất 1 ký tự với 3 ký số)

2 ký tự đầu biểu thị tên, tinh thành; Cái này nên lấy theo biển số xe của nước ta.
Tuy nhiên fải đổi lại chút đĩnh, nhằm tránh chuỗi toàn ký số.
Quy tắc đó như sau :
Với tỉnh có biển số xe < 10 ta dùng toàn ký tự, như AA giành cho biển số 01; BB - giành cho 02, . . .
Với tỉnh >= 10 số hàng chục ta chuyển thành A,B, C . . . tương ứng, ví dụ F9 thay cho 69; F6 thay cho biển số 66, H9 thay cho biển 89,
A9 thay cho biển số 19, A0 sẽ thay cho 10
Như vậy tỉnh Cà mau (hình như biển số 69) sẽ có mã F900;
Các huyện & thành fố Cà mau sẽ được mã hóa từ 1 cho đến Z (35 đơn vị hành chính). Ký tự mã hóa này đứng ở cột thứ 3 kể từ bên trái;
Cột cuối đễ mã hóa đơn vị hành chính cấp xã.
(Nếu có huyện nào hơn 35 xã hay đơn vị trực thuộc, lúc đó ta fải xài thêm
các ký tự @, #, $, %, & ,. . để cho đủ vốn lẫn lời!)

Vậy fường 1 thị xã Cà mau sẽ có mã là F611 (Tỉnh này có mã là F600, thị xã này có mã là F610)
Như thế với Bạc liêu (cho rằng biển số xe là 89) Mã tỉnh sẽ là H900; Mã thị xã BL sẽ là H910, & xã Vĩnh lộc B thuộc Vĩnh lợi sẽ có mã H96B. . . (ở đây giả dụ xã này đứng thứ 11 trong thứ tự danh sách của huyện VL này)

Ta có bản mã ni rồi thì dù có 11 huyện Châu thành (Bến tre, BR-Vũng tàu, hay Tây ninh,. . . vẫn truy ra được)

Rất mong sự góp ý của các bạn để hoàn thiện hơn!

Nhắn bổ sung: Bạn nào có biển số xe toàn cõi VN hãy gởi lên hay giới thiệu tìm ở đâu giúp nha!
 
Lần chỉnh sửa cuối:

Nhắn bổ sung: Bạn nào có biển số xe toàn cõi VN hãy gởi lên hay giới thiệu tìm ở đâu giúp nha!
Vừa rồi làm đăng ký MST TNCN, em có lấy danh mục tỉnh, quận, phường cả nước, có kèm mã quốc gia.
Em làm thử cái validation nhằm sửa dữ liệu nhập vào. Tiện em đưa Bác tham khảo.
Còn 2 số đầu bảng số xe thì em tự nhớ cũng được 2/3. Lúc nào tiện em up lên.
Do ít làm nên công thức name hơi dài.
Bạn Duy xem file này, sh Valadation nhé.
 

File đính kèm

  • NghienCuuTachTinh01.rar
    208.8 KB · Đọc: 135
Một lần nữa, mình tham gia là nên dùng Combo sẽ rất nhẹ nhàng. Đừng nghĩ dùng Valid. là đơn giản hơn nha. Khi điều kiện thay đổi sẽ làm cho Name nguồn thay đổi. Vậy là giữa dữ liệu trong ô và điều kiện của Valid. xung đột nhau. Chính vì vậy mà nhập xong thêm dòng mới là mình xoá Valid. cũ đấy thôi
 
Vừa rồi làm đăng ký MST TNCN, em có lấy danh mục tỉnh, quận, phường cả nước, có kèm mã quốc gia.
Em làm thử cái validation nhằm sửa dữ liệu nhập vào. Tiện em đưa Bác tham khảo.
Còn 2 số đầu bảng số xe thì em tự nhớ cũng được 2/3. Lúc nào tiện em up lên.
Do ít làm nên công thức name hơi dài.
Bạn Duy xem file này, sh Valadation nhé.

Cách của Thu Nghi là khả thi vì mỗi dòng có tỉnh huyện riêng. Còn bài của các bạn ấy lại chung 1 ô tỉnh vậy khi tỉnh phù hợp dòng này lại không phù hợp dòng kia mới chết chứ.
 
Cách của Thu Nghi là khả thi vì mỗi dòng có tỉnh huyện riêng. Còn bài của các bạn ấy lại chung 1 ô tỉnh vậy khi tỉnh phù hợp dòng này lại không phù hợp dòng kia mới chết chứ.
Em đang tìm cách tách tỉnh = code nhưng dữ liệu nhập lúc thì có 4 dấu "-", lúc thì "-". Nguyên tắc là ưu tiên lấy từ bên phải qua, tỉnh - > quận -> phường. Nhưng mà khuất mắt là làm sao tìm tỉnh gần đúng so với dm Tỉnh.
Bác xem giúp, và triển khai cái vụ tỉnh, quận, phường sang listview giúp em.
Cám ơn Bác.
 
Nhờ cái biển số xe của ThuNghi mình làm được file này, nhưng mới 3 tỉnh thành !

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Sh As Worksheet, Rng As Range, sRng As Range, RngS As Range
 Dim MyAdd As String, Ma As String
 Dim MyColor As Byte

 Set Sh = Sheets("Data")
 
 If Not Intersect(Target, [B2]) Is Nothing Then
   With [B2].Interior
      If .ColorIndex < 30 Then MyColor = 35 Else MyColor = .ColorIndex + 1
   End With
   
   Sh.[j1].CurrentRegion.Offset(1).ClearContents
   
   Set Rng = Sh.Range(Sh.[B1], Sh.[B65500].End(xlUp))
   Set RngS = Rng.Find(Target.Value, , xlFormulas, xlWhole)
   If Not RngS Is Nothing Then
      Ma = RngS.Offset(, -1).Value
      Target.Offset(, -1).Value = Ma
      Set Rng = Sh.Range(Sh.[d1], Sh.[d65500].End(xlUp))
      Set sRng = Rng.Find(Left(Ma, 2), , , xlPart)
      If Not sRng Is Nothing Then
         MyAdd = sRng.Address
         Do
            With Sh.[j65500].End(xlUp).Offset(1)
               .Value = sRng.Offset(, 1).Value
            End With
            Set sRng = Rng.FindNext(sRng)
         Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
      End If
   End If
 ElseIf Not Intersect(Target, [c2]) Is Nothing Then
   
   Sh.[L1].CurrentRegion.Offset(1).ClearContents
   
   Set Rng = Sh.Range(Sh.[e1], Sh.[E65500].End(xlUp))
   Set RngS = Rng.Find(Target.Value, , , xlWhole)
   If Not RngS Is Nothing Then
      Ma = Left(RngS.Offset(, -1).Value, 3)
      Set Rng = Sh.Range(Sh.[G1], Sh.[G65500].End(xlUp))
      Set sRng = Rng.Find(Ma, , , xlPart)
      If Not sRng Is Nothing Then
         MyAdd = sRng.Address
         Do
            With Sh.[L65500].End(xlUp).Offset(1)
               .Value = sRng.Offset(, 1).Value
            End With
            Set sRng = Rng.FindNext(sRng)
         Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
      End If
   End If
 End If
 [B2].Interior.ColorIndex = MyColor
End Sub


Từ đây có thể thêm dân số, một khi có số liệu cập nhất.
 

File đính kèm

  • GPE.rar
    21.3 KB · Đọc: 95
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom