Bài tập hàm Excel căn bản.

Liên hệ QC
Lần chỉnh sửa cuối:
Anh xem:
Last5New = OFFSET(MFGProd,,COLUMNS(DayMFG)-4,,5)

Nếu phòng chống covid thì
Last5New = OFFSET(MFGProd,,MAX(COUNT(DayMFG)-4, 1),,MIN(5,COUNT(DayMFG)))
Bác gửi đáp án của bác em tham khảo với. Offset cả 1 range thì với em nó mới tinh đấy.
Phần Name này em dùng khó chịu thật, cứ dùng phím mũi tên là nó lại nhảy địa chỉ mà không sang bên cạnh. Địa chỉ thì cứ phải tuyệt đối không là nó lại nhảy lung tung cả lên.
 
Bác gửi đáp án của bác em tham khảo với. Offset cả 1 range thì với em nó mới tinh đấy.
Phần Name này em dùng khó chịu thật, cứ dùng phím mũi tên là nó lại nhảy địa chỉ mà không sang bên cạnh. Địa chỉ thì cứ phải tuyệt đối không là nó lại nhảy lung tung cả lên.
Cứ ghi công thức ra 1 ô rồi copy vô thôi.
 
Không nhớ Columns thì xài CountA cũng được nha anh, ngày và số xài thêm Count nữa.
Thú thật là lâu không dùng công thức nên mất độ nhạy, thêm nữa phần nhỏ là bị bài lai của công thức hiểu sai đề ở trên.
 
Khi level 1 qua la mã mới thì level 2 phải quay về A, giống như level 3 quay về 1 vậy
Nộp bài cũ hết hạn. :wallbash: :wallbash: :wallbash:
Trong lúc chờ đáp án chính chủ bài mới thì em nộp bài cũ hết hạn. Khiếp, bài cơ bản gì mà làm mệt bở hơi tai thế bác, em phải thật là rất rảnh không có việc làm mới mò được mấy bài cơ bản bá đạo này. :wallbash::wallbash::wallbash:
 

File đính kèm

  • BaiTap3-STT.xlsx
    19.5 KB · Đọc: 10
Thú thật là lâu không dùng công thức nên mất độ nhạy, thêm nữa phần nhỏ là bị bài lai của công thức hiểu sai đề ở trên.
Kể cả hiểu sai đề, nhưng với cách ở bài #79 thì cũng ngắn gọn thôi:
Kể cả có dự phòng covid cũng chỉ thế này:

Last5Days =OFFSET(MFGProd,,MAX(1,MATCH(Name!$E2,DayMFG,0)-4),,MIN(5,MATCH(Name!$E2,DayMFG,0)))

mấy bài cơ bản bá đạo
Hàm chính chỉ có hàm If thì gọi là cơ bản.

1. La mã và số: B3 =IF(C3<>"",ROMAN(COUNTA(C2:C$2)),IF(C2<>"",1,B2+1))

1680614066530.png

2. La mã và ABC: J3 =IF(K3<>"",CHAR(COUNTA(K2:K$2)+64),IF(K2<>"",1,J2+1))

1680614196774.png

3. ABC và số: R3 =IF(S3<>"",ROMAN(COUNTA(S2:S$2)),IF(S2<>"","A",CHAR(CODE(R2)+1)))

1680614350212.png

4. 3 cấp: tôi làm ngắn không ra nên tạm để đó, chứ công thức dài ghét lắm.
 
Lần chỉnh sửa cuối:
4. 3 cấp: tôi làm ngắn không ra nên tạm để đó, chứ công thức dài ghét lắm.
Cái này có được tính là ngắn không bác
Mã:
I3=if(K3<>"",ROMAN(COUNTA(K$3:K3)),if(L3<>"",if(K2<>"","     A","     "&char(code(trim(OFFSET(I2,-I2,0)))+1)),if(L2<>"",1,I2+1)))

Về bài Offset, em rút gọn lại được như sau:
Mã:
Qty=OFFSET(MFGProd,0,COUNTIF(DayMFG,"<"&Name!$D$2)+1,,COUNTIFS(DayMFG,">="&Name!$D$2,DayMFG,"<="&Name!$E$2))
last5Cost=OFFSET(MFGProd,0,COUNT(DayMFG),,-COUNTIF(DayMFG,">="&MAX(DayMFG)-4))
 
Về bài Offset, em rút gọn lại được như sau:
Mã:
Qty=OFFSET(MFGProd,0,COUNTIF(DayMFG,"<"&Name!$D$2)+1,,COUNTIFS(DayMFG,">="&Name!$D$2,DayMFG,"<="&Name!$E$2))
last5Cost=OFFSET(MFGProd,0,COUNT(DayMFG),,-COUNTIF(DayMFG,">="&MAX(DayMFG)-4))
Của tôi đây:
Qty =OFFSET(MFGProd,,MATCH(Name!$D$2,DayMFG,0),,COUNTIFS(DayMFG,">="&Name!$D$2,DayMFG,"<="&Name!$E$2))
Last5Cost = OFFSET(MFGProd,,MAX(COUNT(DayMFG)-4, 1),,MIN(5,COUNT(DayMFG)))

Ngắn hơn nữa nếu như ngày liên tục:
Qty =OFFSET(MFGProd,,MATCH(Name!$D$2,DayMFG,0),,Name!$E$2-Name!$D$2+1)
 
Lần chỉnh sửa cuối:
Của tôi đây:
Qty =OFFSET(MFGProd,,MATCH(Name!$D$2,DayMFG,0),,COUNTIFS(DayMFG,">="&Name!$D$2,DayMFG,"<="&Name!$E$2))
Last5Cost = OFFSET(MFGProd,,MAX(COUNT(DayMFG)-4, 1),,MIN(5,COUNT(DayMFG)))

Ngắn hơn nữa nếu như ngày liên tục:
Qty =OFFSET(MFGProd,,MATCH(Name!$D$2,DayMFG,0),,Name!$E$2-Name!$D$2+1)
Cái 5 ngày cuối có nhiều ý hiểu thật.
Em làm hàm countif để đề phòng trường hợp này:
1 là có 1 ngày cách quãng trong 5 ngày đó. 5 ngày cuối nên được hiểu là 5 ngày (kể từ ngày cuối cùng -4 đến ngày cuối) hay là cứ đúng 5 cột ngày cuối cùng của bảng.
2 là giả sử 1 ngày phải nhập 2 lần, có 2 cột cùng ngày trên bảng.
 
Cái 5 ngày cuối có nhiều ý hiểu thật.
Em làm hàm countif để đề phòng trường hợp này:
1 là có 1 ngày cách quãng trong 5 ngày đó. 5 ngày cuối nên được hiểu là 5 ngày (kể từ ngày cuối cùng -4 đến ngày cuối) hay là cứ đúng 5 cột ngày cuối cùng của bảng.
2 là giả sử 1 ngày phải nhập 2 lần, có 2 cột cùng ngày trên bảng.
Giả định là ngày liên tục và không trùng. Công thức của bạn đúng mà? Tôi chỉ đưa ra 1 công thức khác để tham khảo.
Dù vậy cũng có dự phòng nguyên dãy ngày dòng 8 mới có vài cột có ghi ngày đầu tháng, những ngày sau chưa có số liệu nên bỏ trống. Trống cả ô chứa ngày)
 
Bài tập 6: Chuyển dữ liệu 1 cột thành bảng nhiều cột và ngược lại. File đính kèm gồm 2 sheet, 4 câu.
Chỉ dùng công thức thường của 2019 trở xuống.
 

File đính kèm

  • Baitap6-2D-1D.xlsx
    11 KB · Đọc: 18
Bài tập 6: Chuyển dữ liệu 1 cột thành bảng nhiều cột và ngược lại. File đính kèm gồm 2 sheet, 4 câu.
Chỉ dùng công thức thường của 2019 trở xuống.
Khó quá sư phụ ơi.
Mà đối tượng tham gia giải là thế nào? điều kiện ra sao? AI tham gia cũng được hay sao?
 
Khó quá sư phụ ơi.
Mà đối tượng tham gia giải là thế nào? điều kiện ra sao? AI tham gia cũng được hay sao?
Theo chủ đề này thì ai tham gia cũng được, nhưng không chấm điểm, không thưởng, không đánh giá. Chỉ có đúng và sai.
 
Bài tập 6: Chuyển dữ liệu 1 cột thành bảng nhiều cột và ngược lại. File đính kèm gồm 2 sheet, 4 câu.
Chỉ dùng công thức thường của 2019 trở xuống.
Em làm trước 3 câu, không biết đi đúng hướng để làm câu 4 không nữa thầy ơi.
 

File đính kèm

  • Baitap6-2D-1D.xlsx
    13.1 KB · Đọc: 4
Lòng vòng cũng trong phạm vi INDEX, với tham số lấy từ INT,MOD
 

File đính kèm

  • Baitap6-2D-1D.xlsx
    18.8 KB · Đọc: 12
Đúng nhưng
=IFERROR(INDEX($C$2:$C$17,(COLUMNS($M$8:M8))+4*INT((ROW()-9)/4)*IF(MOD((ROW()-9),4)=0,1,"A")),"")
dài quá, phức tạp quá. Đơn giản hơn sẽ ngắn hơn
Bài đã được tự động gộp:

Lòng vòng cũng trong phạm vi INDEX, với tham số lấy từ INT,MOD
Viết chung đi chứ phải dùng cột phụ làm gì. Nếu để giải thích thì được. Nhưng thực hành cỡ bebo thì viết chung.
 
Web KT
Back
Top Bottom