1つの部門が必要とする製品のリストを取得するマクロを構築しています(毎日新しいものを送信します)。倉庫内のすべての商品のすべての場所のこれまでは、製品IDがロケーションリスト(x)で発生した回数をカウントし、それを新しいシートxに何度もコピーするように設定しました。製品のサイズを取得し、別の列に値を入力して製品ID &のサイズを索引付けして場所を見つけることができるようになりました。そのシートは印刷され、製品を引っ張って、システムを見たり、リストのすべての場所を見つけることなく(現在は約1時間かかる)、製品を引っ張ることになります(現在は約1時間かかります)。「INDEX」配列式を自動入力してルックアップ列の新しいユニークな値を再調整するコード
問題は今です第2の一意の値の最初のインスタンスで中断することなく、自動入力する式を取得することはできません。私は回避策を見つけましたが、どのようにvbaで自動化を開始するのか分かりません。
D2におけるアレイ式=
{=INDEX(Report!D:G,SMALL(IF(Report!D:G=$A2,ROW(Report!D:G)),ROW(A1)),4)}
が列Aに第2の一意的な値まで取得した場合、それが破壊し、それが
{=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))}
しかし、明らかにそれをうまくいかなかった。それはもっと絶望的だった。
列Aの変更を検出し、最後の行関数をA1に戻すだけで、VBAでプロセスを自動化する方法はありますか?
または、自動入力で動作する式がありますか?
何か助けていただければ幸いです。ありがとう!
これは機能します。ああ、ありがとう!あなたが気にしない場合、あなたの答えについて2つの質問... 完全な列参照を持たないように数式を変更するにはどうすればよいですか? と あなたの作品はなぜ機能しましたか? COUNTIFとは何をしていますか? 編集:最初の質問に気を付けないでください。わかった。 – MadeFromMetal
最初の質問は、私は編集、2番目を参照して答えた:countifの2番目の参照は、数式が見つかった行の上から範囲を増加させるため、重複するので、Aの各変更が1に戻ってカウンターを開始します。 –
ご協力いただきありがとうございます。すべてが完璧に動作します。私のコメントの編集は気にせず、あなたの編集は私の解決策よりも優れていました。 – MadeFromMetal