SEARCH searches for the value K2 and L2 in all of the cells in the range $D$2:$D$32. It returns the position number of the start of that value (if found)........ and the largest number of characters allowed in a cell is 32767 or 2^15-1
Having a lookup value of 2^15 therefore guarantees that that value will be larger than anything that SEARCH returns, this means that you get a match with the last cell that contains K2 and L2
If you extend the ranges, you need to be have the same row, example
=LOOKUP(2^15,SEARCH(K2,$D$2:$D$100)*SEARCH(L2,$D$2:$D$100),$D$2:$D$100)
sorry of my bad english hope this clear