Under DataFrames.jl version 0.21.0 you can do:
julia> df1 = DataFrame("Criteria 1" => ["A","B","A","B"],
"Criteria 2" => [1, 2, 2, 1],
"Factor 1" => [75, 85, 60, 50])
4×3 DataFrame
│ Row │ Criteria 1 │ Criteria 2 │ Factor 1 │
│ │ String │ Int64 │ Int64 │
├─────┼────────────┼────────────┼──────────┤
│ 1 │ A │ 1 │ 75 │
│ 2 │ B │ 2 │ 85 │
│ 3 │ A │ 2 │ 60 │
│ 4 │ B │ 1 │ 50 │
julia> df2 = DataFrame("Criteria 1" => ["B","A"],
"Criteria 2" => [1, 2])
2×2 DataFrame
│ Row │ Criteria 1 │ Criteria 2 │
│ │ String │ Int64 │
├─────┼────────────┼────────────┤
│ 1 │ B │ 1 │
│ 2 │ A │ 2 │
julia> rightjoin(df1, df2, on=["Criteria 1", "Criteria 2"])
2×3 DataFrame
│ Row │ Criteria 1 │ Criteria 2 │ Factor 1 │
│ │ String? │ Int64? │ Int64? │
├─────┼────────────┼────────────┼──────────┤
│ 1 │ B │ 1 │ 50 │
│ 2 │ A │ 2 │ 60 │
a more advanced pattern is the following
julia> gdf = groupby(df1, 1:2)
GroupedDataFrame with 4 groups based on keys: Criteria 1, Criteria 2
First Group (1 row): Criteria 1 = "A", Criteria 2 = 1
│ Row │ Criteria 1 │ Criteria 2 │ Factor 1 │
│ │ String │ Int64 │ Int64 │
├─────┼────────────┼────────────┼──────────┤
│ 1 │ A │ 1 │ 75 │
⋮
Last Group (1 row): Criteria 1 = "B", Criteria 2 = 1
│ Row │ Criteria 1 │ Criteria 2 │ Factor 1 │
│ │ String │ Int64 │ Int64 │
├─────┼────────────┼────────────┼──────────┤
│ 1 │ B │ 1 │ 50 │
julia> gdf[NamedTuple(df2[1, :])]
1×3 SubDataFrame
│ Row │ Criteria 1 │ Criteria 2 │ Factor 1 │
│ │ String │ Int64 │ Int64 │
├─────┼────────────┼────────────┼──────────┤
│ 1 │ B │ 1 │ 50 │
julia> gdf[NamedTuple(df2[2, :])]
1×3 SubDataFrame
│ Row │ Criteria 1 │ Criteria 2 │ Factor 1 │
│ │ String │ Int64 │ Int64 │
├─────┼────────────┼────────────┼──────────┤
│ 1 │ A │ 2 │ 60 │
which allows you to do a lookup per row (if you wanted e.g. to do iteration).
Now related to package version. Pkg.update() does not have to give you the result you expect. I have recently written blog posts here and here trying to explain the potential problems.
However, if you want to keep working in default project environment it is easiest to run add DataFrames@v0.21 command in Package Manager mode that will make sure you have a right package version (in general I also recommend reading this part of the manual).