我構建一個宏以獲取一個部門需要的產品列表(他們每天發送一個新列表),並根據報告進行參考倉庫中每個物品的每個位置。到目前爲止,我已經設置了計算產品ID在位置列表(x)中出現的次數,並將其複製到新工作表x中多次。現在我需要它來獲取產品的尺寸並填充另一列,以便我可以索引產品ID &尺寸並查找位置。該表格將被打印並提供給人們拉動產品,而不必在系統中查找並找到列表上的所有東西的位置(目前大約需要一個小時。)代碼自動填充「INDEX」數組公式並在查找列中重新調整爲新的唯一值
現在的問題是我無法在不破壞第二個唯一值的第一個實例的情況下自動填充公式。我找到了一個解決方法,但我不知道如何開始在vba中自動化它。在D2
數組公式=
{=INDEX(Report!D:G,SMALL(IF(Report!D:G=$A2,ROW(Report!D:G)),ROW(A1)),4)}
當它到達下降到在列A的第二唯一值,它打破和它的內容
{=INDEX(Report!D:G,SMALL(IF(Report!D:G=$A7,ROW(Report!D:G)),ROW(A6)),4)}
但是通過改變最後一個ROW函數返回A1,它的工作原理如下:
{=INDEX(Report!D:G,SMALL(IF(Report!D:G=$A7,ROW(Report!D:G)),ROW(A1)),4)}
Formula breaks in first instance of 2nd unique value in Column A
我嘗試添加一個IFERROR於下式:
{=IFERROR(INDEX(Report!D:G,SMALL(IF(Report!D:G=$A2,ROW(Report!D:G)),ROW(A1)),4),INDEX(Report!D:G,SMALL(IF(Report!D:G=$A2,ROW(Report!D:G)),ROW($A$1)),4))}
但很明顯的是沒有工作。這是更絕望。
是否有辦法通過讓VBA中的進程自動檢測列A中的更改並僅將公式中的最後一個ROW函數還原爲A1?
或者,有沒有一個公式可以通過自動填充工作?
任何幫助表示讚賞。謝謝!
它的工作原理!哦,夥計,謝謝!如果您不介意,請提供2個關於您的答案的問題... 如何更改您的公式以使其沒有完整列引用? 和 爲什麼你的工作? COUNTIF在做什麼? 編輯:沒關係第一個問題。我知道了。 – MadeFromMetal
第一個問題,我回答見edit,第二個問題:countif中的第二個引用是相對的,所以公式被拖下來增加了從頂部到公式所在的行的範圍,所以它正在計數重複,所以A中的每次更改都會使計數器回到1. –
感謝您的幫助。一切都很完美。而且從來沒有我的評論編輯,你的編輯比我的解決方案更好。 – MadeFromMetal