Excel VLOOKUP 是我的應用程式的最佳選擇嗎?

Excel VLOOKUP 是我的應用程式的最佳選擇嗎?

我有一個 Excel 文件,可以在給定特定緯度/經度的情況下追蹤全年太陽的最大高度,每天一行。如果我編輯緯度/經度,每日最大海拔會改變。

我想編寫一個公式來查詢整個資料庫(2 列,366 行),並給出太陽第一次開始達到給定高度的日期,以及太陽不再達到該高度的日期。

例如,檀香山將在 5 月 1 日經歷最大太陽高度角 80 度,並保持在 80 度或更高(每天一次),直到 8 月 19 日再次降至 80 度以下。

我想要一個 Excel 函數來產生這兩個日期,因為我已經有了海拔資料。

謝謝!

答案1

這裡的解決方案是在數組公式中使用INDEX()和的組合。MATCH()

我寫了兩個數組公式來解決這個問題。

開始日期: {=INDEX(Dates, MATCH(TRUE, (Elevation>=Find_Elevation), 0), 1)}

結束日期: {=INDEX(Dates, MATCH(TRUE, (Elevation>=Find_Elevation), 1), 1)}

他們是這樣運作的

  • Elevation是一個命名範圍,包含一年中的每個海拔高度,Find_Elevation是一個我們正在尋找的命名範圍。在你的例子中,這是80
  • 這個表達式(Elevation>=Find_Elevation)傳回由TRUEand組成的陣列FALSE(這就是為什麼這需要是一個陣列公式)。TRUE只要每天的海拔大於或等於您要尋找的海拔,它就會返回。
  • MATCH()帶有第三個參數的函數傳回0它第一次看到的索引TRUE。這是太陽高於您要尋找的海拔高度的第一天的指數。
  • 1在函數中使用第三個參數MATCH()可以使其傳回上次看到的值TRUE。這是最後一天太陽高於您要尋找的海拔高度的指數。
  • 我們將這兩個參數作為第二個參數傳遞給INDEX(),它會傳回與傳回的值相對應的日期MATCH()

我使用 FormulaChop 產生上面的公式(完全披露:我寫了 FormulaChop)。 這裡是 FormulaChop 如何顯示此公式的螢幕截圖。這裡是演示該公式的電子表格的連結。請原諒我必須彌補太陽高度角。

相關內容