Hi Oscar,
There are multiple columns in two different worksheets, one has more columns than another. I need to compare column F of worksheet 1 and column E of worksheet 2; if the value matches, compare column G of worksheet 1 and column F of worksheet 2; if the value matches, record the value in column N of worksheet1 from column M of worksheet 2. Please see example below.
Worksheet 1:
Column F Column G Column N
Item Code Item Sub-Code Bank Fee
1 0
2 0
4 0
8 0
28 0
Worksheet2:
Column E Column F Column M
Item Code Item Sub-Code Bank Fee
1 0 60
2 0 165
4 0 60
8 0 250
8 2 33
28 0 15
28 1 16.5

Array formula in cell N2, worksheet 1:

=MIN(IF((F2=Sheet2!\$F\$2:\$F\$8)*(Sheet1!G2=Sheet2!\$G\$2:\$G\$8), Sheet2!\$N\$2:\$N\$8, ""))

### How to enter an array formula

1. Copy and paste the formula above in to cell N2
2. Press and hold CTRL + SHIFT simultaneously
3. Press Enter once
4. Release all keys.

The formula is now surrounded by curly brackets, like this {=formula} if you did it right. Check your formula bar and make sure you have the curly brackets.

Then copy cell N2 and paste to cells below.

### Explaining array formula

The steps below is for cell N2 formula.

Step 1 - Compare cell F2 (sheet1) with column F (sheet2)

F2=Sheet2!\$F\$2:\$F\$8

becomes

1={1;2;4;8;8;28;28}

and returns

{TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

Step 2 - Compare cell G2 (sheet1) with column G (sheet2)

G2=Sheet2!\$G\$2:\$G\$8

becomes

0={0;0;0;0;2;0;1}

and returns

{TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE}

Step 3 - Multiply arrays

(F2=Sheet2!\$F\$2:\$F\$8)*(Sheet1!G2=Sheet2!\$G\$2:\$G\$8)

becomes

({TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}) * ({TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE})

and returns

{1;0;0;0;0;0;0}

Step 4 - Use IF function to replace calculated values with sheet2 values from column N, if TRUE (1)

IF((F2=Sheet2!\$F\$2:\$F\$8)*(Sheet1!G2=Sheet2!\$G\$2:\$G\$8), Sheet2!\$N\$2:\$N\$8, "")

becomes

IF({1;0;0;0;0;0;0}, Sheet2!\$N\$2:\$N\$8, "")

becomes

IF({1;0;0;0;0;0;0}, {60;165;60;250;33;15;16.5}, "")

and returns

{60;"";"";"";"";"";""}

Step 5 - MIN function finds the number in the array, ignores logical and text values

MIN(IF((F2=Sheet2!\$F\$2:\$F\$8)*(Sheet1!G2=Sheet2!\$G\$2:\$G\$8),Sheet2!\$N\$2:\$N\$8,""))

becomes

MIN({60;"";"";"";"";"";""})

and returns 60.