2017-09-28 10 views
0

説明に基づいて異なるアカウントに入れる必要があるデータのリストがありますが、正しいコードを自動的に挿入する方法はわかりません。Excelリスト内で複数の値を検索する

写真、column Aには、OSPX224,OSPX229などの取引タイプがあります。これらの取引タイプ内の各取引のリストと各タイプの料金合計があります。私はセクションの番号OSPXに基づいて、黄色のセルにそれぞれ自動的に数字を入力したいと思います。たとえば、D1402は、OSPX223に入るアカウントである必要があります。D1419は、OSPX224になるアカウントである必要があります。

OSPXの番号とそれぞれのアカウント番号を持つ別のタブで参照リストを作成できます。

各トランザクションリストの長さが異なるため、OSPXの番号が課金額を上回る行で、時には3ページ上の場合もあります。トランザクションの数も各レポートで変わります。

これを行う方法はありますか?

Don Peteの回答は非常に役に立ち、正確に私が求めていたものですが、今は新たな問題にぶつかりました。データ全体の任意の点には、見出しのセクションがあります。例2に示すように、「課金合計」の後の行は、次のospx番号ではなく1であり、緑色の列が機能しないことを意味します。次の行の代わりに料金合計行の後に次のospx番号を見つける方法に関するアイデア?

また、列Dの代わりに、「#N/A」に「0」または何もないためにどのような方法がある

Example 2

答えて

0

パターンは同じままで、あなたの新しい範囲を開始する場合の合計の直後に、2つの追加の行とIndex()でこれを実行することができます。列Eはの合計Column Aに設定し、列の先頭から各外観を数えます。 Column Fは、どれくらいの行があっても、前の合計行の下にあるセルの値であるOPSXの番号を返します。以前 。最後に、Index(Match())を使用してそれぞれのアカウントを返すことができます。画像を参照してください。色付きのセルには、行内にコピーできる数式が含まれています。 Row Eに1行の合計行(ここでは1400)を追加し、開始値(例:1;灰色セル)を入力する必要があります。

enter image description here

式:

D1418 =INDEX($J$6:$J$10,MATCH(F20,$I$6:$I$10,0)) 
E1416 =IF(ISERROR(FIND("Total",A1416)),"",COUNT($E$1400:E1415)+1) 
F1414 =IFERROR(INDEX($A$1400:A1414,MATCH(E1414-1,$E$1400:E1414,0)+1),"") 

編集: 見出しについて:チャージ合計と必要OSPX-数との間の2行は常にありますか? OSPX番号は常に7文字ですか?次に、この数式を使用してOSPXを取得することができます:=if(A1457="Charge Total"; left(A1444;7);"")Left()は、左から始めて、テキスト文字列からn個の文字を抽出します。

について#N/A: iferrror()を使用すると、緑色の式のようにエラーをマスクできます。予期しないイベントが発生した場合にマスクエラーが発生すると、結果が破損する可能性があることに注意してください。

+0

残念ながら、各タイプのトランザクションの数が毎月変更されました – Ellie

+0

わかりましたので、私はそれに応じて回答を更新しました。 –

+0

ありがとう、これは私が探していたものですが、今私は新しい問題にぶつかりました。元の投稿に追加された追加情報。 – Ellie

関連する問題