概括:
我希望提高/完全重寫我為比較兩個不同資料集而撰寫的公式的效率,其輸出將根據第三個資料集而變化。這在一個陳述句中完成了 6 次。我目前的方法有效,但我毫不懷疑有更好的方法,但我不知道從哪里開始。
使用示例:
如果A1="NO",我想搜索我的 6 個資料集并在、、、中找到第一個FALSE結果,或者無論單元格中的內容如何、、、或,然后找出在哪個資料集中。C1F1I1L1O1R1 D1F1J1M1P1S1FALSE
如果A1="YES",我想搜索我的 6 個資料集并在, , ,中找到第一個FALSE結果,或者只要右側相鄰單元格的日期在 2012 年之前。C1F1I1L1O1R1
具有上述標準的示例表,正確的輸出在FORMULAHERE:
| PRE2012 | 資料1 | 資料1無效? | 資料1 日期 | 資料2 | 資料2無效? | 資料2 日期 | 資料3 | 資料3無效? | 資料3 日期 | 資料4 | 資料4無效? | Data4 日期 | 資料5 | 資料5無效? | 資料5 日期 | 資料6 | 資料6無效? | 資料6 日期 | 公式在這里 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 不 | AAA | 真的 | 2020 年 1 月 1 日 | BBB | 錯誤的 | 2018 年 1 月 1 日 | CCC | 真的 | 2015 年 1 月 1 日 | DDD | 真的 | 2013 年 1 月 1 日 | 電子電氣設備 | 真的 | 2010 年 1 月 1 日 | FFF | 錯誤的 | 2009 年 1 月 1 日 | “使用資料 2” |
| 不 | 111 | 錯誤的 | 2020 年 1 月 1 日 | 222 | 錯誤的 | 2018 年 1 月 1 日 | 333 | 真的 | 2015 年 1 月 1 日 | 444 | 真的 | 2013 年 1 月 1 日 | 555 | 真的 | 2010 年 1 月 1 日 | 666 | 錯誤的 | 2009 年 1 月 1 日 | “使用資料 1” |
| 是的 | 美國廣播公司 | 真的 | 2020 年 1 月 1 日 | 國防軍 | 錯誤的 | 2018 年 1 月 1 日 | 全球健康指數 | 真的 | 2015 年 1 月 1 日 | JKL | 真的 | 2013 年 1 月 1 日 | 移動網路運營商 | 真的 | 2010 年 1 月 1 日 | 二維碼 | 錯誤的 | 2009 年 1 月 1 日 | “使用資料 6” |
| 是的 | 123 | 真的 | 2020 年 1 月 1 日 | 456 | 錯誤的 | 2018 年 1 月 1 日 | 789 | 真的 | 2015 年 1 月 1 日 | 012 | 真的 | 2013 年 1 月 1 日 | 345 | 錯誤的 | 2010 年 1 月 1 日 | 678 | 錯誤的 | 2009 年 1 月 1 日 | “使用資料 5” |
當前解決方案:
目前,通過使用以下極其痛苦 =IF的陳述句,我可以根據需要使用該功能:
=IF(A1="Yes",(IF(AND(D1<DATE(2012,1,1),C1=FALSE),"Address 1",IF(A1="Yes",IF(AND(G1<DATE(2012,1,1),F1=FALSE),"Use Data 2",IF(A1="Yes",IF(AND(J1<DATE(2012,1,1),I1=FALSE),"Use Data 3",IF(A1="Yes",IF(AND(M1<DATE(2012,1,1),L1=FALSE),"Use Data 4",IF(A1="Yes",IF(AND(P1<DATE(2012,1,1),O1=FALSE),"Use Data 5",IF(A1="Yes",IF(AND(S1<DATE(2012,1,1),R1=FALSE),"Use Data 6",IF(A1="Yes",IF(R1=TRUE,"All Invalid",IF(A1="Yes",IF(AND(D1>DATE(2012,1,1),G1>DATE(2012,1,1),J1>DATE(2012,1,1),M1>DATE(2012,1,1),P1>DATE(2012,1,1),S1>DATE(2012,1,1)),"No Pre-2012 data on file","Review Manually")))))))))))))))),IF(A1="No",IF(C1=FALSE,"Address 1",IF(F1=FALSE,"Use Data 2",IF(I1=FALSE,"Use Data 3",IF(L1=FALSE,"Use Data 4",IF(O1=FALSE,"Use Data 5",IF(R1=FALSE,"Use Data 6",IF(R1=TRUE,"All Invalid","Review Manually.")))))))))
實作我想要實作的目標的最佳方法是什么?我希望學習,所以如果可能的話,任何進一步閱讀以幫助我理解答案將不勝感激。謝謝!
使用 MSO365。謝謝!
uj5u.com熱心網友回復:
如何在 中包含IFS()相對范圍XLOOKUP():
=XLOOKUP(1,(C2:R2=FALSE)*(IFS(A2="NO",1,A2="YES",D2:S2<DATE(2012,1,1))),"Use "&B$1:Q$1,"",0)
請注意,""如果未找到任何值,您可以替換為您想顯示的任何值。
這里的邏輯:
XLOOKUP()可用于在值的范圍/陣列(第二個引數)中查找某個值(第一個引數),并將回傳該完全相同的索引/位置(第三個引數)上的相對值。第 4 個引數如果未找到則回傳該值,其中第 5 個引數是斷言找到的值是完全匹配而不是近似值;- 第一個引數 - 我們正在尋找值“1”。它會在下面變得清晰;
- 第二個引數 - 我們只使用了一個布爾結構
TRUE或FALSE值(或數字)。在 Excel 中,“(A=X)(B=Y)”結構將評估為“TRUE TRUE”,因此進一步評估為“1”。(C2:R2=FALSE)在這種情況下,我們對兩者進行評估(IFS(A2="NO",1,A2="YES",D2:S2<DATE(2012,1,1)))。換句話說,我們將嘗試找到上述計算結果為“1”的第一個位置; - 第三個引數 - “使用”和要回傳的范圍之間的連接,相對于我們使用的其他范圍;
- 4th Paremter - 如果沒有找到任何值,你想回傳的任何值,設定為
""此刻; - 5th Paremter - 如前所述,這是為了斷言我們正在尋找完全匹配而不是近似匹配。
這IFS()似乎相當不言自明,但簡而言之:如果“否”則只需使用“1”,否則檢查范圍與 2012 年 1 月 1 日之前的日期。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/427555.html
下一篇:在C 中創建具有條件的矩陣
