• 締切済み

エクセル関数 同順位を別名前で抽出する方法

エクセル2003を使用しています。 【表1】は別表から重複外のみを抽出。 【表2】は【表1】から順位付けの為、抽出。 【表2】から【表3-2】のようにTOP10を自動抽出したいのですが、 同順位があると【表3-1】のようになり項目名がうまく表示されません。 【表3-1】に於いては、重み付けし試みたのですが、うまく表示されませんでした。 どのようにしたら需要家No.と項目名が別名にて表示されるのでしょうか。 御教授願います。 【表1】 J K L M 4 需要家NO 需要家名 総台数 基本料金総額 5 15027 (株)AAA 1 \25,200 6 15256 (株)BBB 1 \28,000 7 20604 (株)CCC 1 \23,800 8 20609 DDD(株) 1 \23,800                                 〈以下にデータ有〉 セルL…=COUNTIF($D$5:$D$81,J5) →別表から セルM…=SUMIF($D$5:$D$81,J5,$H$5:$H$81) →別表から 【表2】 P Q R 4 順位 需要家NO 需要家名 5 16 15027 (株)AAA 6 1 26492 EEE(株) 7 7 26500 FFF(株) 8 4 28267 (株)GGG 9 7 26535 (株)HHH 10 16 26697 (株)JJJ 11 1 41301 (株)KKK 12 1 42897 LLL(株) (以下にデータ有) セルP…==RANK(L5,$L$5:$L$1000) →表1から 【表3-1】 T U V W 4 順位 需要家NO 需要家名   重み付け 5 1 26492 EEE(株)    1.005 6 1 26492 EEE(株)    1.006 7 1 26492 EEE(株)    1.007 8 4 28267 (株)GGG    1.008 9 5 22763 (株)ZZZ    1.009 10 5 22763 (株)ZZZ    1.01 11 7 25628 (株)YYY    1.011 12 7 25628 (株)YYY    1.012 (以下にデータ有) セルT=RANK(LARGE($L$5:$L$1000,ROW(C1)),$L$5:$L$1000) →表2から セルU=VLOOKUP(T5,$P$5:$Q$53,2,FALSE) →表2から セルV=VLOOKUP(T5,$P$5:$R$53,3,FALSE) →表2から セルW=RANK(P5,$P$5:$P$1000)+ROW()/1000 →表2から 【表3-1】を以下【表3-2_10位まで抽出】のようにしたい 【表3-2】 T U V 4     順位 需要家NO 需要家名 5      1 26492 EEE(株) 6      1 41301 (株)KKK 7      1 42897 LLL(株) 8      4 28267 (株)GGG 9      5 22763 (株)ZZZ 10      5 30446 (株)aa 11      7 25628 (株)YYY 12      7 26426 OOO(株) 13      7 26500 FFF(株) 14      7 26535 (株)HHH また、基本的には1位から10位まで枠があればいいのですが、同順位の場合、以下【表3-3】のように自動でセルを増やし、抽出するにはどのようにしたら宜しいでしょうか。 【表3-3】 T U V 4     順位 需要家NO 需要家名 5      1 26492 EEE(株) 6      1 41301 (株)KKK 7      1 42897 LLL(株) 8      4 28267 (株)GGG 9      5 22763 (株)ZZZ 10      5 30446 (株)aa 11      7 25628 (株)YYY 12      7 26426 OOO(株) 13      7 26500 FFF(株) 【同順位分自動で下記行を増やしたい】 14      7 26535 (株)HHH 15      7 27264 ddd(株) 16      7 27818 (株)SSS 17      7 28134 WWW(株) 18      7 30520 (株)UUU 19      7 30531 TTT(株) 以上、宜しくお願い致します。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

>>その「表示される」とは一体何が表示されている事を指しているのか?順位や需要家NO、需要家名等のデータなのか?または、枠線のみなのか?或いは、その両方なのか? >=はい,両方です。順位,需要家No,需要家名のデータ及び枠線全て(外枠線・内線)。それらが全てが表示されました。 >>G列に台数が入力されている会社が10社未満しかないために、第10位の総台数が0台となっていたりはしないか? >=いいえ,入力されている会社は最小で約90社。また、第10位の総台数を確認致しましたが、0台では御座いませんでした。 >>或いは、同率10位が非常に多数存在しているという事ではないのでしょうか? >=はい,同率順位の会社は最多で10社御座います。が、10位ではなく同率6位で御座います。(順位で言えば1位~15位まで使用) >>L列に入力されている関数が、回答No.2で御伝えしたものとは異なってはいないか? >=いいえ,再確認致しましたが、御教授頂いた数式を入力してあります。  済みません、そうなりますと御希望通りに行が増減しないのは不思議に思います。  実際、回答No.2の添付画像にあります様に、当方で試作したT列~X列の【表3-3】では、第10位までの会社数に合わせて行が増減されておりますので、方法自体は間違ってはいないのではないかと思います。  ですから、質問者様の表の中の何処かが、私が述べた方法通りにはなっていないのではないかと思います。  そこで、あくまで念の為ですが、以下の様な操作を行って、結果がどうなったのかを御知らせ願います。  まず、L5セルの関数を次のものに差し替えて下さい。 =IF(INDEX($D:$D,ROW())="","",IF(COUNTIF($D$4:INDEX($D:$D,ROW()),INDEX($D:$D,ROW()))=1,SUMIF($D:$D,INDEX($D:$D,ROW()),$G:$G),""))  これは、元の関数で「$D5」となっていた箇所を「INDEX($D:$D,ROW())」に変更したものであり、5行目のセルに入力した場合には、「$D5」も「INDEX($D:$D,ROW())」もどちらも「D列の同じ行のセル」を参照する事になりますから、本質的には同じものと言えます。  但し、同列の別の行のセルが削除されたり、セルの切り取りや挿入が行われるなどして、参照元であるD5セルのセル番号が変わってしまった場合には、「$D5」とした場合には同じ行のセルを参照する事が出来なくなるのに対し、「INDEX($D:$D,ROW())」とした場合には、その様なセルの配置の変更には影響されず(但し、D列全体の配置変更には影響されます)に、正しく同じ行のD列のセルを参照する事が出来るという特徴があります。  次に、L5セルをコピーして、L6以下に(D列においてデータが入力される可能性のあるセルの中で最も下にあるセルの行番号を超えるのに十分な行番号の行におけるL列のセルの所にまで)貼り付けて下さい。  次に、N5セルを選択して下さい。  次に、N5セルが選択されている状態において、数式バーの中に表示されている関数の先頭部分にカーソルを合わせてから、「マウスの左ボタンを押しながら、数式バー内の関数の最後までをなぞる」事により、その関数を表している"文字列"を選択して下さい。  次に、選択されている文字列にカーソルを合わせてからマウスを右クリックし、現れた選択肢の中にある[コピー]をクリックして下さい。  次に、キーボードの[Esc]キーを押して、セルの内容の編集モードを終了して下さい。  次に、適当な未使用のセル(ここでは仮にN1セルとします)を右クリックして、現れた選択肢の中にある[貼り付け]をクリックして下さい。  次に、回答No.2に記されているN5セルの関数をコピーして、又別の適当な未使用のセル(ここでは仮にN2セルとします)に貼り付けて下さい。  次に、N1セルとN2セルの双方に対して、「入力されている関数を表している文字列」の先頭に「'」([Shift]+[7や]キー)を入力して下さい。(この操作を行う事により、セルの内容が関数ではなく文字列データとなります)  次に、又別の適当なセル(ここでは仮にN3セルとします)に次の様な関数を入力して下さい。 =N1=N2  そして、N3セルの表示が「TRUE」となる事を確認して下さい。  N3セルの表示が「TRUE」となる事を確認出来たなら、N5セルをコピーして、N6以下に(D列においてデータが入力される可能性のあるセルの中で最も下にあるセルの行番号を超えるのに十分な行番号の行におけるN列のセルの所にまで)貼り付けて下さい。(尚、「TRUE」となる事を確認し終えた段階でN1~N3のセルの内容は消去してしまっても構いません)  次に、T5セルに関しても同様の操作を行って下さい。  その上で、N5セルの場合とT5セルの場合の各々に関して、「TRUE」となったのか、或いは別のどの様な表示が現れたのかという事や、T列のコピーのやり直しを終えた段階でT列~X列の表の表示かどうなったのか、L列に表示されている総台数の値に間違いは無いのかどうか、N列に表示されている順番が総台数の多い順番通りになっているのか、という事を御教え願います。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

>「条件付き書式の設定」にて数式を入力し、ドラッグするとドラッグした位置まで何位まででも表示されるという結果になりました。  その「表示される」とは一体何が表示されている事を指しておられるのでしょうか?  順位や需要家NO、需要家名等のデータが表示される事を仰っておられるのでしょうか?  それとも、枠線のみが表示されるのでしょうか?  或いは、その両方なのでしょうか?  もし、余計な枠線が表示されているとして、その余計な枠線は、セルを囲うように縦横に引かれているのでしょうか、それとも、セルの上辺のみが引かれているのでしょうか?  手抜きをせずに、どの様な状態となっているのかを、必要な情報を漏らさずに御伝え頂く様御願い致します。 >また、人の手で不足している人数分を操作し表示させるのではなく、元シートから同順位分だけを抽出し自動で表示させる(行は都度増減する)という方法を実施したいのです。  その様になっていないという事は、もしかしますと、元データの表において、G列に台数が入力されている会社が10社未満しかないために、第10位の総台数が0台となっていたりはしないでしょうか?  或いは、同率10位が非常に多数存在しているという事ではないのでしょうか?  もしかしますと、L列に入力されている関数が、回答No.2で御伝えしたものとは異なってはいないでしょうか? >基本的な考え方に準ずる。  これまでのお話では、D列~H列の4行目以下にある元データの【別表】のデータを基にして、同じシート内に【表2】や【表3-3】を設けるという話だった筈です。  説明も無くいきなり、【Aというシート】や【Bというシート】などという、別のシートを持ち出されて「(そのシートの)基本的な考え方」等と仰られても、これまでの話には出て来ていないシートの話なのですから、「基本的な考え方」などというものは存在しないと思います。  それと、その【Aというシート】や【Bというシート】には、どの項目のデータを、どの列に表示させるのかという事や、それらのシートにおいて何行目に項目名が入力される事になっていて、実際のデータを表示させるのは何行目からであるのかという事に関しても情報が無いのでは、回答のしようが御座いません。

snkykn
質問者

補足

>kagakusukiさん 返信有難う御座います。また、説明不足で大変申し訳御座いません。また、困惑する表現を使いましたこと、お詫び申し上げます。再度、下記にて御説明させて頂きます。 >その「表示される」とは一体何が表示されている事を指しているのか?順位や需要家NO、需要家名等のデータなのか?または、枠線のみなのか?或いは、その両方なのか? =はい,両方です。順位,需要家No,需要家名のデータ及び枠線全て(外枠線・内線)。それらが全てが表示されました。 >G列に台数が入力されている会社が10社未満しかないために、第10位の総台数が0台となっていたりはしないか? =いいえ,入力されている会社は最小で約90社。また、第10位の総台数を確認致しましたが、0台では御座いませんでした。 >或いは、同率10位が非常に多数存在しているという事ではないのでしょうか? =はい,同率順位の会社は最多で10社御座います。が、10位ではなく同率6位で御座います。(順位で言えば1位~15位まで使用) >L列に入力されている関数が、回答No.2で御伝えしたものとは異なってはいないか? =いいえ,再確認致しましたが、御教授頂いた数式を入力してあります。 >【Aというシート】や【Bというシート】などという、別のシートを持ち出されて「(そのシートの)基本的な考え方」等と仰られても、これまでの話には出て来ていないシートの話なのですから、「基本的な考え方」などというものは存在しない =【Aというシート】や【Bというシート】という表現を使用し困惑させました。上記で表現したかったことは、【表3-3】に於いて、順位が10社のみで表示できる場合→【Aというシート】=Aパターン,10社のみで収まり付かない場合→【Bというシート】=Bパターンとを表現したかっただけで御座います。(●パターンという表現の方が適切だったかもしれません) 適材適所の御言葉を使用せず困惑させすいません。 >【Aというシート】や【Bというシート】には、どの項目のデータを、どの列に表示させるのか。それらのシートにおいて何行目に項目名が入力される事になっていて、実際のデータを表示させるのは何行目からであるのか =考え方は【表3-3】の表示方法に変わりありません。 以上、宜しくお願い致します。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>同率順位が発生し『枠数以上』が必要となってしまった場合、『枠数以上分は自動で行を増やし抽出・表示させる』というのが御教授頂きたい内容となります。  表【表3-3】に関しては、枠線が引かれている範囲を自動で増減させたいという事ですね?  それでしたら、まず一旦、【表3-3】の罫線を、項目名が入力されているT4~X4の範囲を除いて、全て罫線なしにして下さい。  次に以下の操作を行って、T列~X列の5行目以下のセルに対して条件付き書式を設定して下さい。 T5~X5の範囲をまとめて範囲選択   ↓ [メニュー]バーの[書式]ボタンをクリック   ↓ 現れた選択肢の中にある[条件付き書式]をクリック   ↓ 現れた「条件付き書式の設定」ダイアログボックスの「条件1(1)」の囲いの中にある左端の欄をクリック   ↓ 現れた選択肢の中にある「数式が」をクリック   ↓ 「条件付き書式の設定」ダイアログボックスの「条件1(1)」の囲いの中にある左から2番目の欄に次の数式を入力 =$T5<>""   ↓ 「条件付き書式の設定」ダイアログボックスの「条件1(1)」の囲いの中にある[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[罫線]タブをクリック   ↓ 現れた「スタイル」欄の中にある実線をクリック   ↓ 「プリセット」欄の中にある[外枠]ボタンをクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式の設定」ダイアログボックスの[OK]ボタンをクリック   ↓ T5~X5の範囲をまとめてコピーして、同じ列の6行目以下(の関数が入力されている全範囲)に貼り付けし直す  以上です。  因みに、もし【表2】に対しても同様の設定を行う場合には、条件付き書式を設定する範囲をP列~R列の5行目以下に変えた上で、「条件付き書式の設定」ダイアログボックスの「条件1(1)」の囲いの中にある左から2番目の欄に入力する数式を次のものに変えて下さい。 =$P5<>""

snkykn
質問者

補足

>kagakusukiさん 御教授有難う御座います。 「条件付き書式の設定」を試みましたが、実施したいことと幾分相違があるようです。 「条件付き書式の設定」にて数式を入力し、ドラッグするとドラッグした位置まで何位まででも表示されるという結果になりました。 実施したいことは仮にエクセルシートの最下位まで数式をドラッグし入力しておいたとしても不足している同順位分のみ表示させ、それ以上は表示させない。 ということがしたいのです。 また、人の手で不足している人数分を操作し表示させるのではなく、元シートから同順位分だけを抽出し自動で表示させる(行は都度増減する)という方法を実施したいのです。 前述の【追加質問事項】を流用し実施したいことを文面で述べるとしたら・・・(仮で述べます) 【基本の条件】 *常に表示している順位枠数は1~10位までの枠数のみであり、11位以降の枠は無いものとする。 【順位表示する条件】 *元となる表から抽出し表示。 *同順位によって1~10位分の枠数が不足し、不足分の枠数を追加する場合、同順位全てを表示し、同順位外は表示させない。その際、不足している順位分の行数は関数で認識し自動で追加することとする。(人力にて操作しないこととする) 【Aというシート】 ・1位~10位まで同順位無。 ・合計人数は10名なので基本的な考え方に準ずる。 シート表示では・・・ 1位 a 2位 b 3位 c 4位 d 5位 e 6位 f 7位 g 8位 h 9位 i 10位 j 【Bというシート】 ・1位~8位までは同順位無。 ・9位の同順位が4名存在。 ・合計人数は12名となる。 ・基本的な考え方に準ずるが、同順位の9位まで表示し不足している人数分は自動で行を増やし表示する。それ以外は表示しない。 シート表示では・・・ 1位 a 2位 b 3位 c 4位 d 5位 e 6位 f 7位 g 8位 h 9位 i 9(10)位 j 9(11)位 k → 9位の時点で〈i〉がいる。因って、10位の枠数から外れていたとしても同順位の為、表示。また、ここから下記の行は自動で増減し表示(人の手で任意操作はしない) 9(12)位 l 13位 m → 元々10位から外れている為、この人は表示しない という風にしたいと思っております。 御忙しい中、大変恐縮存じますが、追加質問事項について対応可能か否か、可能であればどのようにすれば宜しいのか、御教授頂きたく、お願い申し上げます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

>【表2】で算出した順位とは違う順位が表示されてしまいました。また、1位で反映する箇所が空欄表示となりました。  失礼致しました、質問の趣旨を色々と勘違いしていた様です。  並べる順番は金額の多い順ではなく、G列の台数の合計が多い順という事ですね?  そして、表示するのは10位までとし、総台数が10位のものが複数ある場合には表示する数を増やし、例えば9位が3社ある場合には、結果の表示部の上から数えて9行目(行番号で言えば13行)~11行目(行番号15)が、9位となった3社のデータで埋まるため、全部で11社のデータを表示するという事ですね?  その場合もやはり作業列は2列だけで済みます。  今仮に、L列とN列を作業列として使用するものとします。  尚、 >セルL…=COUNTIF($D$5:$D$81,J5) →別表から との事ですが、その関数ではD列の中に、J5セルに表示されている需要家NOと同じNOが、何回現れているかを求めているだけです。  G列に入力されている台数が、複数台である事もあり得るのですから、その関数では総台数を求める事は出来ないと思います。  まず、L5セルには次の関数を入力して下さい。 =IF($D5="","",IF(COUNTIF($D$4:INDEX($D:$D,ROW()),INDEX($D:$D,ROW()))=1,SUMIF($D:$D,INDEX($D:$D,ROW()),$G:$G),""))  次に、L5セルをコピーして、L6以下に貼り付けて下さい。  次に、N5セルに次の関数を入力して下さい。 =IF(ISNUMBER($L5),RANK($L5,$L:$L)+COUNTIF($L$4:$L4,$L5),"")  次に、N5セルをコピーして、N6以下に貼り付けて下さい。  次に、P5セルに次の関数を入力して下さい。 =IF(ROWS($5:5)>COUNT($L:$L),"",RANK(LARGE($L:$L,ROWS($5:5)),$L:$L))  次に、Q4セルに「需要家NO」、R4セルに「需要家名」等の様に、元データの表に入力した項目名と、同じ項目名を入力して下さい。  次に、Q5セルに次の関数を入力して下さい。 =IF($P5="","",INDEX($D:$H,MATCH(ROWS($5:5),$N:$N,0),MATCH(Q$4,$D$4:$H$4,0)))  次に、Q5セルをコピーして、R5セルに貼り付けて下さい。  次に、P5~R5のセル範囲をまとめてコピーして、同じ列の6行目以下に貼り付けて下さい。  次に、T5セルに次の関数を入力して下さい。 =IF(ROWS($5:5)>COUNTIF($L:$L,">="&LARGE($L:$L,MIN(10,COUNT($L:$L)))),"",RANK(LARGE($L:$L,ROWS($5:5)),$L:$L))  次に、U4セルに「需要家NO」、V4セルに「需要家名」等の様に、元データの表に入力した項目名と、同じ項目名を入力して下さい。  次に、U5セルに次の関数を入力して下さい。 =IF($T5="","",INDEX($D:$H,MATCH(ROWS($5:5),$N:$N,0),MATCH(U$4,$D$4:$H$4,0)))  次に、U5セルをコピーして、V5セルに貼り付けて下さい。  次に、T 5~V5のセル範囲をまとめてコピーして、同じ列の6行目以下に貼り付けて下さい。  尚、もしも【表3-1】において総台数を表示させる場合には、総台数を表示させる列(添付画像の例ではW列)の5行目のセルに次の関数を入力してから、そのセルをコピーして、その列の6行目以下に貼り付けて下さい。 =IF($T5="","",INDEX($L:$L,MATCH(ROWS($5:5),$N:$N,0)))  又、もしも【表3-1】において基本料金総額を表示させる場合には、基本料金総額を表示させる列(添付画像の例ではX列)の5行目のセルに次の関数を入力してから、そのセルをコピーして、その列の6行目以下に貼り付けて下さい。 =IF($U5="","",SUMIF($D:$D,$U5,$H:$H))  因みに、T列~X列の結果を求める際には、元データ以外にはL列とN列のデータを利用しているだけですから、P列~R列の表が無くとも、T列~X列の表は表示されます。

snkykn
質問者

補足

>kagakusukiさん 御返信有難う御座います。御教授頂いた式を入力し数か所うまく表示されない箇所がありましたが、自己解決し思っているものに近い表が完成致しました。大変助かりました。感謝申し上げます。有難う御座いました。 ですが、ひとつだけ質問(?)、御教授頂きたい箇所がある為、再度、御教授頂けませんでしょうか。 【追加質問事項】 【表3-2】は『1位~10位の枠数のみ表示』で思った通りなのですが、【表3-3】で『同率順位が発生した場合、同率順位分を自動で行を増やし表示させたい』という思惑とは幾分違うのかなという認識を受けました。現状、同率順位分の枠数は任意で増やし表示させるのかな・・・と。 基本的な考え方は『1位~10位の枠数のみ』でいいのですが、同率順位が発生し『枠数以上』が必要となってしまった場合、『枠数以上分は自動で行を増やし抽出・表示させる』というのが御教授頂きたい内容となります。 例えば… ・1位~8位までは同順位無。 ・9位の同順位が4名存在。 ・合計人数は12名となる。 上記の場合、表示枠『1位~10位の枠数』から2名分が不足。 不足している2名分の枠(行)を自動で増やし表示。 という風にしたいと思っております。 御忙しい中、大変恐縮存じますが、追加質問事項について対応可能か否か、可能であればどのようにすれば宜しいのか、御教授頂きたく、お願い申し上げます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 これは説明が判り難いために、なかなか回答が付かなかっただけで、状況説明と、何がやりたいのかを解りやすく説明出来てさえいれば、私でなくとも他の回答者がすぐに回答していた事と思われます。  要するに、D列~H列に元データの別表があり、その4行目には項目名が入力されていて、実際のデータは5行目以下に入力されている。  そして、D列には需要家NOが、H列には基本料金が入力されている。  そのデータを基にして、T列~V列に順位、需要家NO、需要家名のそれぞれを、基本料金の合計額が多い順番に、重複や欠けの無い様に表示させたい。  但し、基本料金の合計額が同じ需要家が複数現れる場合もあり得るので、その様な場合においても、重複や欠けの無い様にするにはどうすれば良いのか、という事ですね?  それでしたら、作業列はN列の基本料金総額ともう1列の合わせて2列があれば十分で、J列~M列及びP列~R列を使わずとも、【表3-3】を自動的に表示させる事が出来ますし、TOP10は、【表3-3】の5行目~14行目の所を見れば済む話です。  その方法ですが、元データである別表のどの列に需要家名が入力されているのかが不明ですので、ここでは仮の話として、需要家名がE列に入力されているものとします。  まず、N5セルに次の関数を入力して下さい。 =IF($D5="","",IF(COUNTIF($D$4:$D5,$D5)=1,SUMIF($D:$D,$D5,$H:$H),""))  次に、O5セルに次の関数を入力して下さい。 =IF(ISNUMBER($N5),RANK($N5,$N:$N)+COUNTIF($N$4:$N4,$N5),"")  次に、N5~O5のセル範囲をまとめてコピーして、同じ列の6行目以下に貼り付けて下さい。  次に、U4セルに「需要家NO」、V4セルに「需要家名」等の様に、元データの表に入力した項目名と、同じ項目名を入力して下さい。  次に、T5セルに次の関数を入力して下さい。 =IF(ROWS($5:5)>COUNT($N:$N),"",RANK(LARGE($N:$N,ROWS($5:5)),$N:$N))  次に、U5セルに次の関数を入力して下さい。 =IF($T5="","",INDEX($A:$H,MATCH(ROWS($5:5),$O:$O,0),MATCH(U$4,$A$4:$H$4,0)))  次に、U5セルをコピーして、V5セルに貼り付けて下さい。  次に、W5セルに次の関数を入力して下さい。 =IF($T5="","",LARGE($N:$N,ROWS($5:5)))  次に、T 5~W 5のセル範囲をまとめてコピーして、同じ列の6行目以下に貼り付けて下さい。  以上です。

snkykn
質問者

補足

>kagakusukiさん 早急な回答を有難う御座います。 また、説明が分りにくくすいません。 kagakusukiさんから御教授頂いた式を入力させて頂いたのですが、【表2】で算出した順位とは違う順位が表示されてしまいました。また、1位で反映する箇所が空欄表示となりました。説明が分りにくかった為、再度、御説明させて頂き、御教授頂ければ有り難いです。(イメージ表は投稿時の表を参照願います) 【別表】元となる元シート。需要家Noは約150件ほど存在。元シートにはその需要家Noを主として,需要家名,台数,料金がランダムで列に入力されている。同じ需要家Noでも台数と料金は都度異なる場合もあるし同じ場合もある。 〈表の構成〉 D列・・・需要家No E列・・・需要家名 F列・・・製品仕様 G列・・・台数 H列・・・料金 【表1】別表で重複している需要家Noを除外し抽出した表。 台数・料金は別表で重複している分合算し抽出。 〈表の構成〉 J列・・・需要家No K列・・・需要家名 L列・・・総台数 M列・・・料金総額 【表2】【表1】で抽出した総台数にて総台数の多い順から順位付けした表。(料金総額の表は別で製作予定) 〈表の構成〉 P列・・・順位 Q列・・・需要家No R列・・・需要家名 【表3-1】【表2】の順位を元に昇順でTOP10まで抽出した表。 〈表の構成〉 T列・・・順位 U列・・・需要家No V列・・・需要家名 *同順位があると需要家No及び需要家名が順位分同じく表示されてしまう(1位が3つあれば、同じ需要家No及び需要家名が3つ表示されてしまう) 【したいこと】 同順位の場合【表3-2】のように需要家No及び需要家名を同順位分、適切に抽出したい。また、【表3-3】のように同順位分行を増やしたい。 以上となります。補足でも分かりにくい部分があると思いますが、何卒御教授の程、宜しくお願い申し上げます。