Xuất dữ liệu ra cột, tìm và điền thông tin tương ứng với điều kiện tìm kiếm, bài toán khó (1 người xem)

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

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

Tôi tuân thủ nội quy khi đăng bài

joehui

Thành viên mới
Tham gia
8/4/23
Bài viết
44
Được thích
4
Chào anh chị,

Mình có 1 dữ liệu xuất ra file Exel, rồi mình có thông tin điền bằng tay vào bảng làm trị dò tìm để điền ngược lại cho cột thông tin của file gốc ban đầu,
đã thử hàm HLookup mà ko được, dữ liệu vừa dạng cột và dạng hàng, anh chị có công thức nào giúp trích xuất dữ liệu ra để làm bảng dò tìm, xong điền ngược lại file gốc,
Mình thử VLookup và HLookup có dùng cột phụ mà ko dò tìm điền lại vào được.
Vui lòng xem file mẫu đính kèm

Mong anh chị giúp đỡ
 

File đính kèm

Có thể dùng hàm nào giải quyết được vấn đề Export ra được tên công ty cho cột Y cho cột Y, và hàm nào tìm kiếm để điền dữ liệu cho cột M theo thông tin cột Y với nội dung tìm kiếm dữ liệu là Z2:AH11

Chúng ta có để sửa lại kiểu định dạng dữ liệu của cột từ cột Y tới cột AH miễn sao tìm kiếm được và điền đúng dữ liệu cho cột M

Cám ơn
 
Chào anh chị,

Mình có 1 dữ liệu xuất ra file Exel, rồi mình có thông tin điền bằng tay vào bảng làm trị dò tìm để điền ngược lại cho cột thông tin của file gốc ban đầu,
đã thử hàm HLookup mà ko được, dữ liệu vừa dạng cột và dạng hàng, anh chị có công thức nào giúp trích xuất dữ liệu ra để làm bảng dò tìm, xong điền ngược lại file gốc,
Mình thử VLookup và HLookup có dùng cột phụ mà ko dò tìm điền lại vào được.
Vui lòng xem file mẫu đính kèm

Mong anh chị giúp đỡ
Bài toán quá khó . . . hiểu. Bạn nói rỏ ban đầu có gì, công thức ở ô nào và kết quả mong muốn
 
Đã xem và đã hiểu 100%
Hỏi thêm:
Cột A trộn lẫn tên công ty và hàng loại "n" với n=1 tới 9
Để lấy tên cty ra điền cho cột Y thì phải có gì đó phân biệt chuỗi nào là tên Công ty và chuỗi nào là hàng.
Không biết dữ liệu thật của bạn thế nào, tuy nhiên theo data của bạn:
- Công ty có dạng "CongtyAB..."
- Hàng hóa có dạng "Hang loại ..."
Nếu đúng vậy thì xuất tên Cty ra cột Y không phải là vấn đề lớn.
Tuy nhiên trước khi bắt tay vào làm, mình muốn hỏi:
1- Data thật của bạn có phải như vậy không?
2- Nếu mình làm bằng VBA thì có OK không? (công thức cũng được nhưng sẽ nặng máy nếu data của bạn có vài ngàn dòng)
 
Biết là "bài toán khó" thì phải biết "chịu khó":
- Tạo một cái file mẫu với cách trình bài và dữ liệu mẫu sát với file thực.
- Check lại xem file mẫu có chứa tất cả các trường hợp khác nhau của dữ liệu.
- Chỉnh sửa những dữ liệu sai.
- Làm vài con toán ra kết quả cần muốn, kèm theo giải thích quá trình tại sao đầu vào là A, đầu ra là B.

Khó khăn và rườm rà quá phải không? Chẳng lẽ bạn muốn cái phần mà bạn có thể làm kia, người giải bài phải làm luôn cho bạn?
 
Mình mong muốn dùng hàm không dùng VBA, được,
Cám ơn anh chị đã hổ trợ, để mình làm laị file chính xác rõ hơn,


Đã xem và đã hiểu 100%
Hỏi thêm:
Cột A trộn lẫn tên công ty và hàng loại "n" với n=1 tới 9
Để lấy tên cty ra điền cho cột Y thì phải có gì đó phân biệt chuỗi nào là tên Công ty và chuỗi nào là hàng.
Không biết dữ liệu thật của bạn thế nào, tuy nhiên theo data của bạn:
- Công ty có dạng "CongtyAB..."
- Hàng hóa có dạng "Hang loại ..."
Nếu đúng vậy thì xuất tên Cty ra cột Y không phải là vấn đề lớn.
Tuy nhiên trước khi bắt tay vào làm, mình muốn hỏi:
1- Data thật của bạn có phải như vậy không?
2- Nếu mình làm bằng VBA thì có OK không? (công thức cũng được nhưng sẽ nặng máy nếu data của bạn có vài ngàn dòng)ại
Bài đã được tự động gộp:

Biết là "bài toán khó" thì phải biết "chịu khó":
- Tạo một cái file mẫu với cách trình bài và dữ liệu mẫu sát với file thực.
- Check lại xem file mẫu có chứa tất cả các trường hợp khác nhau của dữ liệu.
- Chỉnh sửa những dữ liệu sai.
- Làm vài con toán ra kết quả cần muốn, kèm theo giải thích quá trình tại sao đầu vào là A, đầu ra là B.

Khó khăn và rườm rà quá phải không? Chẳng lẽ bạn muốn cái phần mà bạn có thể làm kia, người giải bài phải làm luôn cho bạn?
để mình làm file với ghi chú rõ hơn, cám ơn anh chị đã hổ trợ
 
1. Cột A là dữ liệu đầu vào có sẳn trong file Excel
2. Cấu trúc file excel các cột từ A tới M là cột cố định xuất ra từ phần mềm
3. Định dạng dữ liệu " tên công ty" là độ dài 11 ký tự không trùng nhau và là duy nhất trong cột
4. Số lượng công ty có thể là 1 hoặc 2 hoặc 3 hoặc nhiều hơn tùy theo dữ liệu xuất ra có khi tới cả 100 công ty
5. Trong mỗi công ty có thể có 1 loại hàng ( Hang Loai X ) nhiều nhất là 9 loại hàng sẽ xuất hiện trong 1 công ty
6. Mỗi file báo cáo xuất ra trong cột A dòng cuối cùng đều có ô cuối cùng ghi là tổng cộng bao nhiêu công ty ( ở đây ví dụ cụ thể đang là 7 công ty trong lần xuất này )
nên sẽ là " Total(7)
7. Cột A tới cột M là dữ liệu thô xuất ra và cột M không có dữ liệu, cột X tới cột AH là mình tự tạo ra bằng tay để lấy làm dữ liệu nhập cho các ô " Hang loai X" trong cột M
8. Nội dung trong vùng Z2:AH11 là mình nhập bằng tay từ file giấy vào theo số liệu tương ứng từng công ty
9 Cột Y tới cột AH là mình tự thiết kế vậy để dùng làm dữ liệu tìm kiếm nhập cho " Hang loai X " trong cột M
10. Trong file excel này là mình tự đối chiếu bằng tay xem " Hang loai X , thuộc công ty nào trong bảng Y2:AH11 để nhập dữ liệu tương ứng
11. Cột Y là mình tự dò bằng tay trong cột A gỏ tay vào ,

Mong muốn:

12. trích xuất tên công ty từ cột A bằng hàm từ ô Y2 cho đến khi nào đủ hết số lượng công ty có trong cột A
13. dùng hàm để điền thông số " Hang loai X " tương ứng cho từng công ty trong cột M, bắt đầu từ ô M4

Ví dụ: tại ô M4 có "Hang loai 1" thuộc công ty "CongtyAB115" sẽ đối chiếu trong bảng Y1:AH11 sẽ có giá trị là 5, mà mình không biết dùng hàm gì để điền vào ô M4,
các ô ví dụ như M3,M7,M9,M11,M13,M16,M21 Sẽ có giá trị là rống

Anh chị có thể thiết kế bẳng dò tìm Y1:AH1 lại kiểu khác củng được, sau đó mình sẽ nhập bằng tay theo dữ liệu trên giấy vào vùng Z2:AH11,

Cụ thể có thể sắp xếp theo hàng củng được miễn sau lấy ra được đủ tất cả tên công ty (CongtyABxxx) ra làm dữ liệu theo chiếu cùng với loại hàng ( Hang loai X)

Tóm tắt có 2 chổ cần nhập công thức để nhập dử liệu là Cột M từ ô M3 cho đến hết dữ liệu, và tại cột y từ ô Y2 cho đến đủ dữ liệu công ty có trong cột A
Cột A có bao nhiêu công ty thì phải xuất ra cột Y đủ bấy nhiêu công ty

Đây là định dạng file excel sẽ import lại vào hệ thống, ( từ cột A cho tới cột M)
Xin lổi vì đã làm anh chị không hiểu rõ, anh chị vui lòng xem file đính kèm mới
 

File đính kèm

Sửa "Hang loại 2" thành "Hang loai 2" tại ô A12 (bỏ dấu đi)
Số TT tại X2, kéo xuống:
Mã:
=IF(Y2="","",MAX($X$1:X1)+1)
Y2, kéo xuống
Mã:
=IFERROR(INDEX($A$3:$A$23,MATCH(0,COUNTIF($Y$1:Y1,IF(LOWER(LEFT($A$3:$A$23,8))="Congtyab",$A$3:$A$23,$Y$1)),0)),"")
(Cthức mảng nên nếu Ex2016 trở xuống thì nhấn Ctrl-Shift-Enter thay vì Enter)
M2, kéo xuống:
Mã:
=IF(LEFT(A3,8)="CongtyAB","",INDEX($Z$2:$AH$11,MATCH(INDEX(A:A,AGGREGATE(14,6,ROW($A$1:A2)/
(LEFT($A$1:A2,8)="CongtyAB"),1)),$Y$2:$Y$11,0),MATCH(A3,$Z$1:$AH$1,0)))
 

File đính kèm

cám ơn bạn để mình thử nhập công thức
Bài đã được tự động gộp:

1683794068590.png

1683794145390.png

Mình sài excel 2007, có tương thích để mở file này không bạn
 
Lần chỉnh sửa cuối:
Sửa "Hang loại 2" thành "Hang loai 2" tại ô A12 (bỏ dấu đi)
Số TT tại X2, kéo xuống:
Mã:
=IF(Y2="","",MAX($X$1:X1)+1)
Y2, kéo xuống
Mã:
=IFERROR(INDEX($A$3:$A$23,MATCH(0,COUNTIF($Y$1:Y1,IF(LOWER(LEFT($A$3:$A$23,8))="Congtyab",$A$3:$A$23,$Y$1)),0)),"")
(Cthức mảng nên nếu Ex2016 trở xuống thì nhấn Ctrl-Shift-Enter thay vì Enter)
M2, kéo xuống:
Mã:
=IF(LEFT(A3,8)="CongtyAB","",INDEX($Z$2:$AH$11,MATCH(INDEX(A:A,AGGREGATE(14,6,ROW($A$1:A2)/
(LEFT($A$1:A2,8)="CongtyAB"),1)),$Y$2:$Y$11,0),MATCH(A3,$Z$1:$AH$1,0)))
Anh chị đã thay đổi cấu trúc file cột A ( đã gọp 2 ô lại ), mình sửa lổi chính tả Hang loai 2 ô A12 rồi

Công thức tại ô X2 và Y2 chạy thành công !
Tại M2 chạy không thành công, Anh chị đừng gộp các ô tên công ty lại ( CongtyABxxx)

Vui lòng xem file đính kèm giúp mình
 

File đính kèm

Bạn chọn vùng M2: M23 rồi nhập công thức?
Không làm vậy nhé.
Nhập CT cho ô đầu tiên (M2) rồi copy xuống. (Enter bình thường nhé bạn.)
 
Bạn chọn vùng M2: M23 rồi nhập công thức?
Không làm vậy nhé.
Nhập CT cho ô đầu tiên (M2) rồi copy xuống. (Enter bình thường nhé bạn.)
Mình đã chọn khối M2:M23, tại thanh công thức dán công thức vào và nhấn tổ hợp phím CTR Shift Enter rồi, kết quả không hiển thị nội dung gì,
Anh chị xem file cập nhật của mình giúp
 

File đính kèm

Mình đã chọn khối M2:M23, tại thanh công thức dán công thức vào và nhấn tổ hợp phím CTR Shift Enter rồi, kết quả không hiển thị nội dung gì,
Ủa, mình đã phủ nhận thao tác này rồi mà (bài 11)? Chỉ nhập tại 1 ô thôi. Sau đó copy xuống.
 
Anh chị rãnh xem lại dùm là cấu trúc file các ô trong cột A đã bi thay đổi, và ô M2 trong file mình đính kèm lên đã có dữ liệu, vậy mình phải xóa dữ liệu ô M2 rồi làm công thức giống anh chị nhưng ko được,

Còn file khi anh chị upload trả lại mình thì lúc mình sửa lổi chính tả A12 xong thì công thức đã có sẵn trong cột M báo lổi #NAME? toàn bộ

Cám ơn !
 
1. Cột A là dữ liệu đầu vào có sẳn trong file Excel
2. Cấu trúc file excel các cột từ A tới M là cột cố định xuất ra từ phần mềm
3. Định dạng dữ liệu " tên công ty" là độ dài 11 ký tự không trùng nhau và là duy nhất trong cột
4. Số lượng công ty có thể là 1 hoặc 2 hoặc 3 hoặc nhiều hơn tùy theo dữ liệu xuất ra có khi tới cả 100 công ty
5. Trong mỗi công ty có thể có 1 loại hàng ( Hang Loai X ) nhiều nhất là 9 loại hàng sẽ xuất hiện trong 1 công ty
6. Mỗi file báo cáo xuất ra trong cột A dòng cuối cùng đều có ô cuối cùng ghi là tổng cộng bao nhiêu công ty ( ở đây ví dụ cụ thể đang là 7 công ty trong lần xuất này )
nên sẽ là " Total(7)
7. Cột A tới cột M là dữ liệu thô xuất ra và cột M không có dữ liệu, cột X tới cột AH là mình tự tạo ra bằng tay để lấy làm dữ liệu nhập cho các ô " Hang loai X" trong cột M
8. Nội dung trong vùng Z2:AH11 là mình nhập bằng tay từ file giấy vào theo số liệu tương ứng từng công ty
9 Cột Y tới cột AH là mình tự thiết kế vậy để dùng làm dữ liệu tìm kiếm nhập cho " Hang loai X " trong cột M
10. Trong file excel này là mình tự đối chiếu bằng tay xem " Hang loai X , thuộc công ty nào trong bảng Y2:AH11 để nhập dữ liệu tương ứng
11. Cột Y là mình tự dò bằng tay trong cột A gỏ tay vào ,

Mong muốn:

12. trích xuất tên công ty từ cột A bằng hàm từ ô Y2 cho đến khi nào đủ hết số lượng công ty có trong cột A
13. dùng hàm để điền thông số " Hang loai X " tương ứng cho từng công ty trong cột M, bắt đầu từ ô M4

Ví dụ: tại ô M4 có "Hang loai 1" thuộc công ty "CongtyAB115" sẽ đối chiếu trong bảng Y1:AH11 sẽ có giá trị là 5, mà mình không biết dùng hàm gì để điền vào ô M4,
các ô ví dụ như M3,M7,M9,M11,M13,M16,M21 Sẽ có giá trị là rống

Anh chị có thể thiết kế bẳng dò tìm Y1:AH1 lại kiểu khác củng được, sau đó mình sẽ nhập bằng tay theo dữ liệu trên giấy vào vùng Z2:AH11,

Cụ thể có thể sắp xếp theo hàng củng được miễn sau lấy ra được đủ tất cả tên công ty (CongtyABxxx) ra làm dữ liệu theo chiếu cùng với loại hàng ( Hang loai X)

Tóm tắt có 2 chổ cần nhập công thức để nhập dử liệu là Cột M từ ô M3 cho đến hết dữ liệu, và tại cột y từ ô Y2 cho đến đủ dữ liệu công ty có trong cột A
Cột A có bao nhiêu công ty thì phải xuất ra cột Y đủ bấy nhiêu công ty

Đây là định dạng file excel sẽ import lại vào hệ thống, ( từ cột A cho tới cột M)
Xin lổi vì đã làm anh chị không hiểu rõ, anh chị vui lòng xem file đính kèm mới
Mã:
Y2 =IFERROR(INDEX($A$3:$A$23,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT($A$3:$A$23,8)="Congtyab",$A$3:$A$23,$Y$1)),0)),"")
Nhấn Ctrl+Shift+Enter
Mã:
X2 =IF(Y2="","",N(X1)+1)
Nhấn Enter
Copy X2:Y2 xuống dưới
Mã:
M3 =IF(LEFT(A3,4)="Hang",VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A2,6)="Congty"),$A$2:A2),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")
Copy xuống
 

File đính kèm

Mã:
Y2 =IFERROR(INDEX($A$3:$A$23,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT($A$3:$A$23,8)="Congtyab",$A$3:$A$23,$Y$1)),0)),"")
Nhấn Ctrl+Shift+Enter
Mã:
X2 =IF(Y2="","",N(X1)+1)
Nhấn Enter
Copy X2:Y2 xuống dưới
Mã:
M3 =IF(LEFT(A3,4)="Hang",VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A2,6)="Congty"),$A$2:A2),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")
Copy xuống
File này chạy được, nhưng phần định dạng các ô trong cột A và cột B đã bị thay đổi, để mình copy công thức chạy qua bên file lúc đầu mình upload lên xem có bị lổi không,
Cám ơn bạn rất nhiều
 
Mã:
Y2 =IFERROR(INDEX($A$3:$A$23,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT($A$3:$A$23,8)="Congtyab",$A$3:$A$23,$Y$1)),0)),"")
Nhấn Ctrl+Shift+Enter
Mã:
X2 =IF(Y2="","",N(X1)+1)
Nhấn Enter
Copy X2:Y2 xuống dưới
Mã:
M3 =IF(LEFT(A3,4)="Hang",VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A2,6)="Congty"),$A$2:A2),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")
Copy xuống
Chào bạn HieuCD,
Mình cám ơn bạn rất nhiều, file bạn đã chạy đúng,

Một vấn đề là do mình chứ không phải do bạn, là tại M3, bạn đang dùng LEFT 4 ký tự A3 để lấy ra kết quả "Hang" rồi bạn VLOOKup tiếp, trong các biến của VLOOKUP có (LEFT($A$2:A2,6)="Congty") chổ này không ảnh hưởng vì dữ liệu gốc tương đồng,

Còn dữ liệu gốc của LOAI HANG ko tương đồng với Hang loai 1, Hang loai 2,....... bạn có thể dùng cách nào mà tìm kiếm nguyên nội dung của A3 không chứ không phải lấy 4 ký đầu A3

Mình cám ơn nhiều
Bài đã được tự động gộp:

Mình làm được rồi, mình dùng <>"Congty", và sửa các tên Hang loai 1, Hang loai 2, ...... Hang loai 9 thành tên khác.


BẠn có thể giải thích dùm mình chổ này LOOKUP(2,1/(LEFT($A$2:A2,6)="Congty") có ý nghĩa gì không bạn
 
Lần chỉnh sửa cuối:
Mã:
Y2 =IFERROR(INDEX($A$3:$A$23,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT($A$3:$A$23,8)="Congtyab",$A$3:$A$23,$Y$1)),0)),"")
Nhấn Ctrl+Shift+Enter
Mã:
X2 =IF(Y2="","",N(X1)+1)
Nhấn Enter
Copy X2:Y2 xuống dưới
Mã:
M3 =IF(LEFT(A3,4)="Hang",VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A2,6)="Congty"),$A$2:A2),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")
Copy xuống
Mình đã sửa được thành công tại ô M3 như sau:

=IF(LEFT(A3,8)<>$O$1,VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A3,8)=$O$1),$A$2:A3),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")

nhưng kết quả sẽ không còn đúng mà hiện ra lỗi #N/A khi kèo công thức xuống tới ô cuối cùng cột A có nội dung là Total(7) cụ thể đây là M23,

Mình thử dùng hàm IFERROR(M3,"",IF(LEFT(A3,8)>$O$1,VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A3,8)=$O$1),$A$2:A3),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"") NHƯNG không được, Excel báo lổi,

trở lại công thức IF(LEFT(A3,8)<>$O$1,VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A3,8)=$O$1),$A$2:A3),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")

Mình lồng hàm OR ngay đầu ÌF(or(LEFT(A3,8)<>$O$1,LEFT(A3,6)<>"Total("),VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A3,8)=$O$1),$A$2:A3),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")) Thì Excel báo lổi nhiều tham số khi thêm hàm OR ở đầu

Có cách nào giải quyết để lồng hàm OR vô đầu công thức không bạn, thêm hàm OR(A3 là khoảng trắng, A3 là Total(), thì VLOOKUP......

Cám ơn bạn nhiều
Bài đã được tự động gộp:

Mình đã sửa được thành công tại ô M3 như sau:

=IF(LEFT(A3,8)<>$O$1,VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A3,8)=$O$1),$A$2:A3),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")

nhưng kết quả sẽ không còn đúng mà hiện ra lỗi #N/A khi kèo công thức xuống tới ô cuối cùng cột A có nội dung là Total(7) cụ thể đây là M23,

Mình thử dùng hàm IFERROR(M3,"",IF(LEFT(A3,8)>$O$1,VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A3,8)=$O$1),$A$2:A3),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"") NHƯNG không được, Excel báo lổi,

trở lại công thức IF(LEFT(A3,8)<>$O$1,VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A3,8)=$O$1),$A$2:A3),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")

Mình lồng hàm OR ngay đầu ÌF(or(LEFT(A3,8)<>$O$1,LEFT(A3,6)<>"Total("),VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A3,8)=$O$1),$A$2:A3),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")) Thì Excel báo lổi nhiều tham số khi thêm hàm OR ở đầu

Có cách nào giải quyết để lồng hàm OR vô đầu công thức không bạn, thêm hàm OR(A3 là khoảng trắng, A3 là Total(), thì VLOOKUP......

Cám ơn bạn nhiều
Mình làm được rồi,

=IF(OR(A3="",LEFT(A3,$P$1)=$O$1,LEFT(A3,6)="Total("),"",VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A3,8)=$O$1),$A$2:A3),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0))

Cám ơn bạn !
 
Chào bạn HieuCD,
Mình cám ơn bạn rất nhiều, file bạn đã chạy đúng,

Một vấn đề là do mình chứ không phải do bạn, là tại M3, bạn đang dùng LEFT 4 ký tự A3 để lấy ra kết quả "Hang" rồi bạn VLOOKup tiếp, trong các biến của VLOOKUP có (LEFT($A$2:A2,6)="Congty") chổ này không ảnh hưởng vì dữ liệu gốc tương đồng,

Còn dữ liệu gốc của LOAI HANG ko tương đồng với Hang loai 1, Hang loai 2,....... bạn có thể dùng cách nào mà tìm kiếm nguyên nội dung của A3 không chứ không phải lấy 4 ký đầu A3

Mình cám ơn nhiều
Bài đã được tự động gộp:

Mình làm được rồi, mình dùng <>"Congty", và sửa các tên Hang loai 1, Hang loai 2, ...... Hang loai 9 thành tên khác.


BẠn có thể giải thích dùm mình chổ này LOOKUP(2,1/(LEFT($A$2:A2,6)="Congty") có ý nghĩa gì không bạn
Chỉnh tí . . .
Mã:
M3 =IFERROR(VLOOKUP(LOOKUP(2,1/(LEFT($A$2:A2,6)="Congty"),$A$2:A2),$Y$2:$AH$11,MATCH(A3,$Y$1:$AH$1,0),0),"")
 
Chào bạn HieuCD,

tại vị trí Y2, bạn đã làm công thức
Y2 =IFERROR(INDEX($A$3:$A$23,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT($A$3:$A$23,8)="Congtyab",$A$3:$A$23,$Y$1)),0)),"")
và kết quả trả về là chính xác

Vì dữ liệu cột A có lúc sẽ nhiều, có lúc sẽ ít, và có lúc sẽ rất nhiều
Mình đã thử để tăng số lượng dòng lên từ $A$3:$A$23 thành $A$3:$A$10000 thì máy tính xử lý rất chậm và phải chờ

Tại cột A lúc nào củng xuất hiện dòng cuối cùng với nội dung là Total(x) trong đó X là số lượng CongtyABxxx
Mình có thể dùng thông tin vị trí ô cuối cùng cột A để xác định độ dài vị trí dò tìm là vị trị hàng thứ mấy đó trừ đi một,

lúc này chổ $A$3:$A$23 mình dùng công thức xác định vị trí ô có nội dung là "Total(7)" trong cột A thay thấy cho con số cố định là A23

Không biết ý tưởng này mình có khả thi không bạn

Cám ơn
 
Chào bạn HieuCD,

tại vị trí Y2, bạn đã làm công thức
Y2 =IFERROR(INDEX($A$3:$A$23,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT($A$3:$A$23,8)="Congtyab",$A$3:$A$23,$Y$1)),0)),"")
và kết quả trả về là chính xác

Vì dữ liệu cột A có lúc sẽ nhiều, có lúc sẽ ít, và có lúc sẽ rất nhiều
Mình đã thử để tăng số lượng dòng lên từ $A$3:$A$23 thành $A$3:$A$10000 thì máy tính xử lý rất chậm và phải chờ

Tại cột A lúc nào củng xuất hiện dòng cuối cùng với nội dung là Total(x) trong đó X là số lượng CongtyABxxx
Mình có thể dùng thông tin vị trí ô cuối cùng cột A để xác định độ dài vị trí dò tìm là vị trị hàng thứ mấy đó trừ đi một,

lúc này chổ $A$3:$A$23 mình dùng công thức xác định vị trí ô có nội dung là "Total(7)" trong cột A thay thấy cho con số cố định là A23

Không biết ý tưởng này mình có khả thi không bạn

Cám ơn
Đặt tên "Data" cho vùng dữ liệu theo công thức
Mã:
Data = Sheet1!$A$3:INDEX(Sheet1!$A$2:$A$99999,MATCH("Total*",Sheet1!$A$3:$A$99999,0),)
Công thức ngoài sheet
Mã:
Y2 =IFERROR(INDEX(Data,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT(Data,8)="Congtyab",Data,$Y$1)),0)),"")
Lưu ý nếu dữ liệu nhiều tạo cột phụ sẽ nhẹ file hơn
 

File đính kèm

2- Nếu mình làm bằng VBA thì có OK không? (công thức cũng được nhưng sẽ nặng máy nếu data của bạn có vài ngàn dòng)
Theo bài này mình đã hỏi trước về việc dùng VBA nếu data lớn
Mình đã thử để tăng số lượng dòng lên từ $A$3:$A$23 thành $A$3:$A$10000 thì máy tính xử lý rất chậm và phải chờ
Quả đúng là như vậy.
Nếu bạn dùng 2021 hay 365 thì sẽ có nhiều hàm tân thời để dùng.
Không thì phải VBA thôi.
Áo bạn si?
 
Theo bài này mình đã hỏi trước về việc dùng VBA nếu data lớn

Quả đúng là như vậy.
Nếu bạn dùng 2021 hay 365 thì sẽ có nhiều hàm tân thời để dùng.
Không thì phải VBA thôi.
Áo bạn si?
Mình chỉ dùng được excel các phiên bản tầm 2007 hoặc 2013, VBA ko dùng được bạn ơi, cám ơn bạn nhiều, chắc còn cách tạo cột phụ xem có giảm tải được không
Bài đã được tự động gộp:

Đặt tên "Data" cho vùng dữ liệu theo công thức
Mã:
Data = Sheet1!$A$3:INDEX(Sheet1!$A$2:$A$99999,MATCH("Total*",Sheet1!$A$3:$A$99999,0),)
Công thức ngoài sheet
Mã:
Y2 =IFERROR(INDEX(Data,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT(Data,8)="Congtyab",Data,$Y$1)),0)),"")
Lưu ý nếu dữ liệu nhiều tạo cột phụ sẽ nhẹ file hơn
Cột phụ dạng này được không bạn

CongtyAB115
Hang loai 1
Hang loai 2
Hang loai 3
CongtyAB789
Hang loai 1
CongtyAB333Hang loai 2
Hang loai 3
Total(3)
 
Mình chỉ dùng được excel các phiên bản tầm 2007 hoặc 2013, VBA ko dùng được bạn ơi, cám ơn bạn nhiều, chắc còn cách tạo cột phụ xem có giảm tải được không
Bài đã được tự động gộp:


Cột phụ dạng này được không bạn

CongtyAB115
Hang loai 1
Hang loai 2
Hang loai 3
CongtyAB789
Hang loai 1
CongtyAB333Hang loai 2
Hang loai 3
Total(3)
Dùng 1 cột phụ đánh số thứ tự những dòng có công ty (1, 2, 3 . . .)
 
Đã mất công dùng cột phụ thì liệt kê tên công ty luôn:
Cty A
Cty A Hang loai 1
Cty A Hang loai 2
Cty A Hang loai 3
CtyB
....
Sau đó dùng SUMIFS thì nhanh nhất
 
Ở đấy mà than "bài toán khó".
Khó là ở chỗ cơ quan hà tiện và thiếu khả năng quản lý chứ đâu phả lỗi của vấn đề.

Đã muốn chinh phục công việc rắc rối thì phải sẵn sàng bỏ ra chút phí, mua phiên bản phần mềm cao cấp hơn (365); và/hoặc phải uyển chuyển đủ để chấp nhận rằng "VBA đượ sunh ra để giải quyết những trường hợp khó nhai".
 
Ở đấy mà than "bài toán khó".
Khó là ở chỗ cơ quan hà tiện và thiếu khả năng quản lý chứ đâu phả lỗi của vấn đề.

Đã muốn chinh phục công việc rắc rối thì phải sẵn sàng bỏ ra chút phí, mua phiên bản phần mềm cao cấp hơn (365); và/hoặc phải uyển chuyển đủ để chấp nhận rằng "VBA đượ sunh ra để giải quyết những trường hợp khó nhai
Cám ơn bạn trao đổi, dùng excel 365 thì dc, nhưng sau đó file đó ko import lại dc vào hệ thống, mọi người dg nâng cấp phần mềm
Bài đã được tự động gộp:

Dùng 1 cột phụ đánh số thứ tự những dòng có công ty (1, 2, 3 . . .)
Thoải mái bạn ơi
 
Lần chỉnh sửa cuối:
Đặt tên "Data" cho vùng dữ liệu theo công thức
Mã:
Data = Sheet1!$A$3:INDEX(Sheet1!$A$2:$A$99999,MATCH("Total*",Sheet1!$A$3:$A$99999,0),)
Công thức ngoài sheet
Mã:
Y2 =IFERROR(INDEX(Data,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT(Data,8)="Congtyab",Data,$Y$1)),0)),"")
Lưu ý nếu dữ liệu nhiều tạo cột phụ sẽ nhẹ file hơn
File bạn chạy vèo vèo,
mình làm vầy ko biết sai chổ nào mà ko chạy bạn xem thử

Data = 'D:\SV\AG\Copy\[Report.xlsx]Sheet1'!$A$3:INDEX('D:\SV\AG\Copy\[Report.xlsx]Sheet1'!$A$2:$A$10000,MATCH("Total*",'D:\SV\AG\Copy\[Report.xlsx]Sheet1'!$A$3:$A$10000,0),)


Y2 =IFERROR(INDEX(Data,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT(Data,8)="Congtyab",Data,$Y$1)),0)),"")

sau khi chạy Y2 ko xuất hiện gì cả, mò hoài hok thông được
bạn xem giúp mình sai chổ nào nhé
 
File bạn chạy vèo vèo,
mình làm vầy ko biết sai chổ nào mà ko chạy bạn xem thử

Data = 'D:\SV\AG\Copy\[Report.xlsx]Sheet1'!$A$3:INDEX('D:\SV\AG\Copy\[Report.xlsx]Sheet1'!$A$2:$A$10000,MATCH("Total*",'D:\SV\AG\Copy\[Report.xlsx]Sheet1'!$A$3:$A$10000,0),)


Y2 =IFERROR(INDEX(Data,MATCH(0,COUNTIF($Y$1:Y1,IF(LEFT(Data,8)="Congtyab",Data,$Y$1)),0)),"")

sau khi chạy Y2 ko xuất hiện gì cả, mò hoài hok thông được
bạn xem giúp mình sai chổ nào nhé
Nhập công thức ô Y2 xong nhấn Ctrl+Shift+enter
 
Mình kiểm tra lại thấy không được
Nghĩa là bắt buộc phải để chung 1 file hả bạn
Bài đã được tự động gộp:

Nếu từ cột A tới cột L mà tách riêng dc 1 file, thì sẽ đỡ rất nhiều công đoạn, còn từ cột M trở về tới cột W mình củng tách ra 1 sheet,
Cột X tới cột AH mình tách ra 1 sheet

Đã áp dụng công thức của bạn thành công tốt đẹp,

Chỉ có tối ưu hóa chiều dài của cột A bằng tự động cách mới chưa được

File gộp chung bạn làm chính xác 100%

Có giải pháp nào cho Y2 khi cột A tới cột L tách riêng ra 1 file để chung folder ko bạn
Vẫn dùng ô rrong cột A có nội dung Total(X) để xác định độ dài
 
Lần chỉnh sửa cuối:
Nghĩa là bắt buộc phải để chung 1 file hả bạn
Bài đã được tự động gộp:

Nếu từ cột A tới cột L mà tách riêng dc 1 file, thì sẽ đỡ rất nhiều công đoạn, còn từ cột M trở về tới cột W mình củng tách ra 1 sheet,
Cột X tới cột AH mình tách ra 1 sheet

Đã áp dụng công thức của bạn thành công tốt đẹp,

Chỉ có tối ưu hóa chiều dài của cột A bằng tự động cách mới chưa được

File gộp chung bạn làm chính xác 100%

Có giải pháp nào cho Y2 khi cột A tới cột L tách riêng ra 1 file để chung folder ko bạn
Vẫn dùng ô rrong cột A có nội dung Total(X) để xác định độ dài
Bạn nhờ bạn bài #23 viết code VBA
 

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

Back
Top Bottom