Đặt hai công thức Excel lại với nhau


0

Tôi có một số dữ liệu cụ thể trong sheet1 và một số dữ liệu khác trong sheet2.

Tôi cần so sánh một giá trị cụ thể (Var1) từ sheet1 và trả về một giá trị cụ thể từ sheet2 và trả về một đầu ra cho cùng. Tôi đã làm thành công với công thức này

=IF(COUNTIF(Sheet2!A:A, A2), "Yes", "No")

Tờ1

+------+------+---------+---------+
| var1 | var2 | result1 | result2 |
+------+------+---------+---------+
|      |      |         |         |
| abc  |  123 | yes     | yes     |
|      |      |         |         |
| bcd  |  234 | yes     | no      |
|      |      |         |         |
| cde  |  456 | no      | blank   |
+------+------+---------+---------+

Tờ2

+-------+-------+-------+
| List1 | List2 | List3 |
+-------+-------+-------+
| abc   |   123 |       |
| bcd   |       | 123   |
| def   |       |       |
+-------+-------+-------+

Tôi cần tra cứu var1 trong list1 và var2 trong list2 và list3

Tôi muốn so sánh một giá trị khác (Var2) trong Bảng2, chỉ khi kết quả trước đó là "Có", có thể dễ dàng đạt được bằng hàm IF; nhưng điều thú vị là nó chỉ nên so sánh các giá trị từ các hàng cụ thể của Sheet2, nên là các hàng cộng (+) và trừ (-) 2 từ nơi Var1 được tìm thấy trong Sheet2.

Tôi không thành thạo VBA, nhưng tôi đã thử sức mình với các công thức Excel.


Vui lòng xem xét việc thêm vào câu hỏi một phần dữ liệu bạn có (cả cho trang 1 và trang 2). Sau đó, chọn một ô cụ thể trong sheet1 và đưa ra 1 ví dụ về cách kết thúc đầu ra.

Giá trị của A2 có thể xuất hiện trong Sheet2 bao nhiêu lần? Ngoài ra, có phải là +/- 2 hàng từ var1 phải là look_up_range cho tiêu chí thứ 2 của bạn không?

@AndreSilva Bao gồm một ví dụ

@ 666bytes A2 là khóa của trang tính và là duy nhất trong cả hai.

@ 666byte Có. +/- 2 hàng từ var1 phải là look_up_range cho tiêu chí thứ 2 của bạn

Câu trả lời:


0

Đây là niềm vui để giải đố thông qua :)

Sử dụng ví dụ của bạn, tôi đặt hàm này vào C2(bên dưới 'result1') và điền vào mảng:

=IF(COUNTIF(Sheet2!A:A,A2),"Yes","No")

Và cho D2dưới 'result2':

=IF(C2="No","No",IF(COUNTIF(INDIRECT("Sheet2!C"&MAX((MATCH(A2,Sheet2!A:A)-2),1)&":C"&(MATCH(A2,Sheet2!A:A)+2)),B2),"Yes","No"))

Một lần nữa, mảng điền nó xuống, và nó sẽ hoạt động :)


Hoạt động như một cơ duyên !!! Cảm ơn!! Đã học hỏi được rất nhiều!!
Pratik

Hoàn thành tốt Tuy nhiên, tôi cố gắng tránh gián tiếp khi có thể, vì bạn sẽ phải cập nhật công thức của mình khi, giả sử, chèn một cột sang trái hoặc đổi tên bảng tính của bạn.
lẽ là WeCouldStealAVan

0

Bạn có thể sử dụng OR () và so sánh nếu bạn có cộng và trừ. Một cái gì đó như thế này:

=IF(OR(A1="+";A1="-");"Ok";"")

Sau đó, bạn có thể thay đổi "Ok" cho bạn công thức.

=IF(OR(A1="+";A1="-");=IF(COUNTIF(Sheet1!C:C, A2), "Yes", "No");"")

Đây có phải là những gì bạn cần?


Câu hỏi của tôi khá mơ hồ, xin lỗi vì điều đó. Chỉnh sửa nó cho rõ ràng hơn.

0

Thử: =IF(C2<>"Yes","",IF(COUNTIF(OFFSET(Sheet2!$B$1:$C$5,MAX(0,MATCH(A2,Sheet2!A:A,0)-3),0),B2)>0,"Yes","No"))

Tôi giả sử rằng:

  • var1là một chìa khóa độc đáo, như bạn đã nói. Nếu không, điều này sẽ chỉ phù hợp với lần xuất hiện đầu tiên.
  • Bạn muốn kết hợp var2trong cả hai list1list2. Nếu không, bạn nên thu hẹp cửa sổ tìm kiếm $B$1:$B$5. Nếu có thêm danh sách ở bên phải, chỉ cần thêm các cột vào cửa sổ tìm kiếm.

Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi về cách thức này hoạt động.


Hoạt động như một cơ duyên !!! Cảm ơn!! Đã học hỏi được rất nhiều!!
Pratik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.