返回列表 上一主題 發帖

如何去找離自己最近的值?

回復 9# 准提部林


    准大,能麻煩你幫我打在範例上面我再研究看看嗎?

TOP

回復 10# 藍天麗池

GOOGLE一下//陣列公式的用法吧!!!
Xl0000216.rar (4.11 KB)

TOP

回復 9# 准提部林

准大,我說不懂是因為查到的跟你說的不太一樣,不知道是打錯,還是有其他用法https://support.microsoft.com/zh-tw/office/%E5%BD%B1%E7%89%87-%E9%99%A3%E5%88%97%E5%85%AC%E5%BC%8F-8ff8257a-b28e-4e81-b4f8-30f793412dfa

TOP

回復 13# 藍天麗池

1) 單格的陣列公式, 在一個儲存格編輯公式, 再用三鍵輸入, 然後複製到其它儲存格(通常是:右拉/下拉)
2) 區域的陣列公式, 則要選取一個區域再按三鍵

通常習慣使用單格陣列公式, 適合擴張範圍~~

google應可找到更多解釋, 卻只去看一個...???

TOP

本帖最後由 藍天麗池 於 2024-2-6 21:10 編輯

回復 14# 准提部林


   准大,我一開始在K2用Ctrl + Alt+ Enter,結果沒反應,後來看到另一篇是用Ctrl + Shift + Enter,結果他就自己呈現右拉跟下拉的功能,因為兩個有點像,所以才會誤解是打錯,或是有其他用法,抱歉

TOP

回復 15# 藍天麗池


是我打錯了, 應該是Shift + Ctrl + Enter

TOP

回復 14# 准提部林


    另外,准大我有些地方不太了解,我有用GPT先查了一下還是不太懂,在跟您請教一下

      1.MOD(MAX(($C$1:$F2=C3)*(ROW($A$1:$A2)*10^5+$G$1:$J2)),10^5) 這邊這串我不太了解它的原理MAX、ROW、MOD、10^5,這些分開我都看得懂,但合在一起我就不懂了,可以麻煩准大幫我說明一下嗎?
      
      2.這個陣列公式輸入完沒問題後,我再去點K2讓她呈現編輯狀態,然後什麼都不改,在按ENTER,之後她會出現#VALUE,為啥{}會消失不見?又為啥自己加{}卻沒辦法有陣列的效果了呢?

      3.也是同上面的問題,假如我有以下的程式碼,在這裡的部分要填入Range("V" & Target.Row).Formula = "{=IF(OR($C$1:$F1=C2),G2-MOD(MAX(($C$1:$F1=C2)*(ROW($A$1:$A1)*10^5+$G$1:$J1)),10^5),"")"},但又因為{}自己加會沒效果,那我程式碼又應該如何更改呢?

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, [B5:B210000]) Is Nothing Then
        Range("V" & Target.Row).Formula = "這裡"
      
     ElseIf Not Intersect(Target, [C5:C210000]) Is Nothing Then
        Range("W" & Target.Row).Formula = "這裡"
   End If
   Application.EnableEvents = True
        

End Sub

准大抱歉,問題比較多,想說這個論壇有很多厲害的前輩在,想多多學習,還請准大不吝賜教

TOP

本帖最後由 准提部林 於 2024-2-7 10:09 編輯

回復 17# 藍天麗池

觀察陣列公式, 得善用"F9", 以下公式逐一輸入至 K5, 在"編輯狀態"下, 按F9看看//
(1) =($C$1:$F4=C5)  按F9,
    可看到//{FALSE,FALSE,FALSE,FALSE;FALSE,TRUE,FALSE,FALSE;TRUE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE}
(2) =($C$1:$F4=C5)*(ROW($A$1:$A4)*10^5+$G$1:$J4)
    //{0,0,0,0;0,200005,0,0;300012,0,0,0;0,0,0,0}

(3) =MAX(($C$1:$F4=C5)*(ROW($A$1:$A4)*10^5+$G$1:$J4)) ... 這時只會出現一個結果//300012...mod尾數12就是結果

在完整公式下,
=IF(OR($C$1:$F4=C5),G5-MOD(MAX(($C$1:$F4=C5)*(ROW($A$1:$A4)*10^5+$G$1:$J4)),10^5),"")
選取紅色字段, 再按F9, 即為(2)的結果

TOP

本帖最後由 准提部林 於 2024-2-7 10:24 編輯

回復 17# 藍天麗池


2.這個陣列公式輸入完沒問題後,我再去點K2讓她呈現編輯狀態,
然後什麼都不改,在按ENTER,之後她會出現#VALUE,為啥{}會消失不見?又為啥自己加{}卻沒辦法有陣列的效果了呢?


只要點進儲存格, 不管裡面是空格/文字或公式, 它就達到 CHANGE 效果

問題(3)//點"錄製巨集" >> 點進公式編輯. 三鍵完成 > 停止錄製
公式對儲存格有"相對參照/絕對參照"之分, 在不同位置產生不同參照, 若不熟悉其運作, 使用錄製出來的程式碼較不會有問題~~

剛入EXCEL之門, 還是要自行多多GOOGLE, 或再多花時間看看論壇帖子吧!  
因為回答起來太花時間~~~回答了問題又會問更多///

TOP

回復 19# 准提部林


    感謝准大的回覆,我再研究看看

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題