2017-12-30 55 views
-3

enter image description hereVBAエクセルコピーペースト

こんにちは、私はExcel VBAに全く慣れていません。まず、条件が満たされたときにデータをコピーしたい(144を参照してデータをコピーする) 第2に、IT運用(表1)からIT運用(表2)までのセルを比較し、変数がない場合はブランクにします。

+1

別にあなたが何をしているか理解していないから、あなたの質問は絶対にあなたが直面している問題が何であるかの兆候を付与するものではありません。 – YowE3K

+0

S.Oへようこそ!何か試しましたか?その場合は、コードを入力してください。 [ツアー](http://stackoverflow.com/tour)と[質問方法](http://stackoverflow.com/help/how-to-ask)をご覧ください。フレンドリーなメモ:StackOverflowは "私たちはあなたのためのコード"サービスプロバイダーではありません[VBA入門](https://blog.udemy.com/excel-macros-tutorial/)または[Mid-Advancedチュートリアル](http: /analysistabs.com/excel-vba/codes-examples-macros-how-tos-most-useful-basics-advanced/)と私の[個人的なお気に入り](http://analystcave.com/excel-vba-tutorial/) – Sgdva

答えて

0

これは数式で行うことができます。 E列(144 Total)の最後の行に記載されている数値と一致させることによって、列Eに一致する項目の価格を列Fに記入することを考える方法の1つです。この場合はE10と仮定します。あなたは下にドラッグF1

合計式は次のとおりです。ステップで

=IFERROR(IFERROR(VLOOKUP(E1,INDIRECT(CELL("address",OFFSET($H$1,MATCH(1*LEFT($E$10,FIND(" ",TRIM($E$10),1)-1),$G:$G,0)-1,,1,1))&":"&CELL("address",OFFSET($I$1,MATCH($E$10,$G:$G,0)-1,,1,1))),2,FALSE),VLOOKUP(E1,G:I,3,FALSE)),"") 

は、金利等の数を抽出します144、および使用して、任意の末尾/先頭の空白を取り除く:これはこの番号のルックアップ範囲の最初の行になり、この値はである行

LEFT($E$10,FIND(" ",TRIM($E$10),1)-1) 

探します。 *1は、テキストを数値に変換します。

MATCH(1*LEFT($E$10,FIND(" ",TRIM($E$10),1)-1),$G:$G,0) 

これは、我々は

MATCH($E$10,$G:$G,0) 

だから、我々はデータを知っている。これは、行15を与える144 Total

を保持し、範囲の最後の行を見つけるために、シンプルなものを使用することができ、行9.

を与えます144の行9と15の間にあります。

INDIRECTOFFSETVLOOKUPで使用する範囲にすることができます。

=CELL("address",OFFSET($G$1,MATCH(1*LEFT($E$10,FIND(" ",TRIM($E$10),1)-1),$G:$G,0)-1,,1,1))&":"&CELL("address",OFFSET($H$1,MATCH($E$10,$G:$G,0)-1,,1,1)) 

これは$G$9:$H$15となります。 -1を調整して、OFFSETを右の行に戻し、OFFSETの開始セルが異なる列にあり、VLOOKUPに必要な列を提供することに注意してください。

これで、列Eの値をルックアップできるようになりました。 Enhancementは、INDIRECTを介してアクセスされる新しく定義された範囲内:

=VLOOKUP(E1,INDIRECT(CELL("address",OFFSET($H$1,MATCH(1*LEFT($E$10,FIND(" ",TRIM($E$10),1)-1),$G:$G,0)-1,,1,1))&":"&CELL("address",OFFSET($I$1,MATCH($E$10,$G:$G,0)-1,,1,1))),2,FALSE) 

これはVLOOKUP(E1,$G$9:$H$15,2,FALSE)、すなわちE1で指定された項目の範囲からprice列を取得すると言っています。

これが見つからない場合は、#N/Aを返します。これは、これが144 Totalを保持する結合されたセルであるかどうかを最初に確認するために使用できます。実際に値がHではない列Gにあり、$G$9:$H$15に見つからない場合はIFERRORを使用し、列G:Iを使用して一致を試し、3を返します。

ようになります上記の手順で説明した式のために、プレースホルダとしてpriorLookupを使用して、擬似式とどちらが、:これはまだ#N/Aを返す場合

IFERROR(priorLookup, VLOOKUP(E1,G:I,3,FALSE)) 

、我々は値が存在しないことを知っていると我々は返す必要があります""。これは、我々は別のIFERRORでこれを扱うことができる:だから私たちは開始時に述べた全体の式を与える

IFERROR(IFERROR(priorLookup, VLOOKUP(E1,G:I,3,FALSE)),"") 

ここでは、シートに使用されます。

Formula in sheet