下面是一個公式,我可以把它放在一起工作。請注意,它只適用於表格中存在正確的四個變量。當然,您可以在其周圍放置IfError()
,以便在不匹配的情況下返回所需內容。
其中一個注意事項:爲了使其工作,您需要將數值範圍「分解」爲兩列,如屏幕截圖中所示。這是因爲查找將搜索兩列,以查找數字落在哪裏。
黃線是我自己的線,表明如果一個「混合」是正確匹配,它會返回一個培養目標:
首先,我將打破公式向下。它基本上是一堆「If()」語句相乘的組合。 (對不起,但我不能肯定它是如何工作的,所以其他人可以親切地對此發表評論!)
=INDEX(G2:G6,MATCH(1,IF(A2>=H2:H6,IF(A2<=I2:I6,1)),0))
所以,你的指數將在G2進行設置:G6。 Match()
中的If()
聲明將返回在該範圍中找到您的Set
的行。 (這兩個部分是爲什麼你需要爲範圍創建兩列)。
然後,您只需重複該If()
語句,更改參數以匹配要匹配的新數據。瞧!輸入作爲一個數組,CTRL + SHIFT + Enter:
=IFERROR(INDEX($G$2:$G$6,MATCH(1,(IF($B2>=$J$2:$J$6,IF($B2<=$K$2:$K$6,1))*IF($A$2>=$H$2:$H$6,IF($A2<=$I$2:$I$6,1))*IF($C2>=$L$2:$L$6,IF($C2<=$M$2:$M$6,1))*IF($D2>=$N$2:$N$6,IF($D2<=$O$2:$O$6,1))),0)),"No exact match found")
或者,另一種選擇更好的可讀性,是命名的範圍。然後,它可能看起來像這樣: =IFERROR(INDEX(Training_Aim,MATCH(1,(IF($B2>=Sets_Min,IF($B2<=Sets_Max,1))*IF($A$2>=Reps_Min,IF($A2<=Reps_Max,1))*IF($C2>=RM_Min,IF($C2<=RM_Max,1))*IF($D2>=Rest_Min,IF($D2<=Rest_Max,1))),0)),"No exact match found")
如果它匹配多個項目? 4套,2個代表,87%和120s-300s至少會匹配前兩項,Power單和Power Multiple。 –
是的,但後來我需要添加其他列強度肥大耐力 – AlbF
你是否無視「休息(s)」列?如果你數一數,你的例子並不符合「Hypertrophy」行的所有部分。 – BaldEagle