Hỗ trợ tìm giá trị cho mảng đa chiều

Liên hệ QC

thanhtam451

Thành viên mới
Tham gia
25/6/11
Bài viết
28
Được thích
0
Giới tính
Nam
Nghề nghiệp
Nhân viên văn phòng
Chào các Anh Chị!

Em đang cần giúp đỡ em có một mãng như hình

2020-10-30_14-12-40.png

Em muốn nhập ô giá trị 1 và giá trị 2 thì nó sẽ hiển thị kết quả ở ô Kết quả 1, Kết quả 2, Kết quả 3, Kết quả 4

VD:
* Nếu em nhập:
Giá trị 1 = 1.5;
Giá trị 2 = 5

Kết quả sẽ hiện thị là:
Kết quả 1 = 4

* Nếu em nhập:
Giá trị 1 = 1.2;
Giá trị 2 = 5

Kết quả sẽ hiện thị là:
Kết quả 1 = 3
Kết quả 2 = 4

* Nếu em nhập:
Giá trị 1 = 1.2;
Giá trị 2 = 5.5

Kết quả sẽ hiện thị là:
Kết quả 1 = 3
Kết quả 2 = 4
Kết quả 3 = 4
Kết quả 4 = 5

Thì làm sao ạ? Giúp em với ạ, cảm ơn các Anh Chị nhiều ạ

---
Giải thích thêm:
- Nếu nhập đúng giá trị trên thì lấy giá trị đúng của hàng và cột
- Nếu giá trị A đúng, giá trị B gần đúng thì Kết quả 1 là giá trị liền trước và giá trị liền sau so với giá trị A, B
- Nếu giá trị A sai, giá trị B sai thì kết quả là số của 4 số liền trước và liền sau.
 

File đính kèm

  • Book1.xlsx
    12 KB · Đọc: 14
Chào các Anh Chị!

Em đang cần giúp đỡ em có một mãng như hình

View attachment 248366

Em muốn nhập ô giá trị 1 và giá trị 2 thì nó sẽ hiển thị kết quả ở ô Kết quả 1, Kết quả 2, Kết quả 3, Kết quả 4

VD:
* Nếu em nhập:
Giá trị 1 = 1.5;
Giá trị 2 = 5

Kết quả sẽ hiện thị là:
Kết quả 1 = 4

* Nếu em nhập:
Giá trị 1 = 1.2;
Giá trị 2 = 5

Kết quả sẽ hiện thị là:
Kết quả 1 = 3
Kết quả 2 = 4

* Nếu em nhập:
Giá trị 1 = 1.2;
Giá trị 2 = 5.5

Kết quả sẽ hiện thị là:
Kết quả 1 = 3
Kết quả 2 = 4
Kết quả 3 = 4
Kết quả 4 = 5

Thì làm sao ạ? Giúp em với ạ, cảm ơn các Anh Chị nhiều ạ

---
Giải thích thêm:
- Nếu nhập đúng giá trị trên thì lấy giá trị đúng của hàng và cột
- Nếu giá trị A đúng, giá trị B gần đúng thì Kết quả 1 là giá trị liền trước và giá trị liền sau so với giá trị A, B
- Nếu giá trị A sai, giá trị B sai thì kết quả là số của 4 số liền trước và liền sau.
Bạn dùng công thức này ở S3, bấm Ctrl+Shift+Enter rồi kéo sang phải
Mã:
=IFERROR(SMALL(N(OFFSET($D$3,MATCH($Q3,$D$4:$D$16)+IF(OR($D$4:$D$16=$Q3),,{0,1}),MATCH($P3,$E$3:$N$3)+IF(OR($E$3:$N$3=$P3),,{0;1}))),COLUMN(A1)),"")
 

File đính kèm

  • Book1 (12).xlsx
    11.3 KB · Đọc: 7
Chào các Anh Chị!

Em đang cần giúp đỡ em có một mãng như hình

View attachment 248366

Em muốn nhập ô giá trị 1 và giá trị 2 thì nó sẽ hiển thị kết quả ở ô Kết quả 1, Kết quả 2, Kết quả 3, Kết quả 4

VD:
* Nếu em nhập:
Giá trị 1 = 1.5;
Giá trị 2 = 5

Kết quả sẽ hiện thị là:
Kết quả 1 = 4

* Nếu em nhập:
Giá trị 1 = 1.2;
Giá trị 2 = 5

Kết quả sẽ hiện thị là:
Kết quả 1 = 3
Kết quả 2 = 4

* Nếu em nhập:
Giá trị 1 = 1.2;
Giá trị 2 = 5.5

Kết quả sẽ hiện thị là:
Kết quả 1 = 3
Kết quả 2 = 4
Kết quả 3 = 4
Kết quả 4 = 5

Thì làm sao ạ? Giúp em với ạ, cảm ơn các Anh Chị nhiều ạ

---
Giải thích thêm:
- Nếu nhập đúng giá trị trên thì lấy giá trị đúng của hàng và cột
- Nếu giá trị A đúng, giá trị B gần đúng thì Kết quả 1 là giá trị liền trước và giá trị liền sau so với giá trị A, B
- Nếu giá trị A sai, giá trị B sai thì kết quả là số của 4 số liền trước và liền sau.
Bạn thử
Mã:
S3=IFERROR(INDEX(OFFSET($D$3,MATCH($Q$3,$D$4:$D$16),MATCH($P$3,$E$3:$N$3),IF(MOD($Q$3,5),2,1),IF(MOD($P$3,0.5),2,1)),INT((COLUMN(A1)-1)/2)+1,MOD(COLUMN(A1)-1,2)+1),"")
 
Nhập đúng giá trị 1 và giá trị 2 thì dùng công thức này =INDEX($E$4:$N$16;MATCH($P$3;$E$3:$N$3;1);MATCH($Q$3;$D$4:$D$16;1))
còn khác thì mình chưa biết!
 
Xem file nhé
Bạn thử
Mã:
S3=IFERROR(INDEX(OFFSET($D$3,MATCH($Q$3,$D$4:$D$16),MATCH($P$3,$E$3:$N$3),IF(MOD($Q$3,5),2,1),IF(MOD($P$3,0.5),2,1)),INT((COLUMN(A1)-1)/2)+1,MOD(COLUMN(A1)-1,2)+1),"")
Chủ thớt muốn kết quả lần lượt từ cột S đến V, không có cột trống xen giữa nhé bạn
 

File đính kèm

  • Book1 (1).xlsx
    12.3 KB · Đọc: 5
Xem file nhé

Chủ thớt muốn kết quả lần lượt từ cột S đến V, không có cột trống xen giữa nhé bạn
Thực ra từ đầu em đã nghĩ dùng small, và cũng gọn hơn
Mã:
=IFERROR(SMALL(OFFSET($D$3,MATCH($Q$3,$D$4:$D$16),MATCH($P$3,$E$3:$N$3),IF(MOD($Q$3,5),2,1),IF(MOD($P$3,0.5),2,1)),COLUMN(A1)),"")
Nhưng em thấy index nó trích xuất đúng thứ tự xuất hiện hơn nên thay vậy, mà chưa tính đến trường hợp nó bị trống như bác nói. Thôi thì quay về lại small :D
 
Thực ra từ đầu em đã nghĩ dùng small, và cũng gọn hơn
Mã:
=IFERROR(SMALL(OFFSET($D$3,MATCH($Q$3,$D$4:$D$16),MATCH($P$3,$E$3:$N$3),IF(MOD($Q$3,5),2,1),IF(MOD($P$3,0.5),2,1)),COLUMN(A1)),"")
Nhưng em thấy index nó trích xuất đúng thứ tự xuất hiện hơn nên thay vậy, mà chưa tính đến trường hợp nó bị trống như bác nói. Thôi thì quay về lại small :D
Em cảm ơn nhiều ạ
Bài đã được tự động gộp:

Xem file nhé

Chủ thớt muốn kết quả lần lượt từ cột S đến V, không có cột trống xen giữa nhé bạn
Em cảm ơn nhiệu ạ
Bài đã được tự động gộp:

"mãng" trong từ "mãng xà" hả bạn?
huhu...:sweatdrop:
 
Em chào các anh chị!
Cho em hỏi ké một tý ạ!
Em có 1 đoạn code này. Anh chị cho em hỏi vì sao e đổi kiểu biến thành Integer thì chạy được còn để Byte thì lại không báo lỗi nhưng yêu cầu khởi động lại excel. Em xin cảm ơn. Đoạn code như này ạ:
Sub VD ()
Dim arr(1 to 1, 1 to 4) As Byte
For i = 1 to 4
arr(1,i)=i
Next i
Range(“A1”).Resize(1, 4) = arr
End Sub
 
Em chào các anh chị!
Cho em hỏi ké một tý ạ!
Em có 1 đoạn code này. Anh chị cho em hỏi vì sao e đổi kiểu biến thành Integer thì chạy được còn để Byte thì lại không báo lỗi nhưng yêu cầu khởi động lại excel. Em xin cảm ơn. Đoạn code như này ạ:
Sub VD ()
Dim arr(1 to 1, 1 to 4) As Byte
For i = 1 to 4
arr(1,i)=i
Next i
Range(“A1”).Resize(1, 4) = arr
End Sub
máy tôi chạy bình thường mà
 
Thế thì điều kiện ngược rồi, người ít bài, mới - thì mới hay sai, BQT xem lại vậy...
Người mới ít bài lại có tình trạng không đọc nội quy rồi tự ý xoá bài viết bằng cách sửa nguyên bài thành 1 từ hoặc 1 câu vô nghĩa. Chủ đề này tôi đã sửa thay cho tác giả từ lâu, coi như chịu cực chút.
 
Web KT
Back
Top Bottom