• ベストアンサー

excel rankで範囲を複数のシートから指定する?

excelで複数のシート(仮にsheet1,sheet2)のA列の複数行に数値が入っています。 それぞれのシートのA列のとなりの列にsheet1,sheet2のA列にある全ての数値の中での順位を出したいです。 rankを使うときに範囲を複数のシートにまたがって指定できますでしょうか? よろしくお願いします。

  • gonji
  • お礼率96% (241/250)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#2です。もしやって見られるなら、。関数式を入れる前に、前もって、メニューのツール-マクロ-VBEでVBE画面をだし、VBE画面のメニューの挿入-標準で出てくる画面に#2のコードを貼りつけて、シートに戻り、セルに=aa(A1,Sheet1!$A$1:$A$6,Sheet2!$A$3:$A$7) のように入れてください。式を複写するので、第2と第3引数番地には$をつけてください。順位を考えるデータの ある各シートの範囲です。第1引き数には$をつけません。 ご存知でしたら済みません。

gonji
質問者

お礼

再度ありがとうございます。 いやいや、全く知りませんでした。 頑張りますo(^-^)o

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

=aa(A1,Sheet1!$A$1:$A$6,Sheet2!$A$3:$A$7) のように2シートに跨ってランクを計算するユーザー関数を作ってみました。A列全体では序列を見るのは不適当 (下行に異質データがあるとか)な場合を考えて。 ロジックは割合単純でした。 Function aa(a, b, c) Dim cl As Range r = 1 For Each cl In b If a < cl Then r = r + 1 End If Next For Each cl In c If a < cl Then r = r + 1 End If Next aa = r End Function (例データ) Sheet1のA1:A6に (A列) (B列) 2 10 3 8 4 7 54 1 2 10 34 3 B1セルに =aa(A1,Sheet1!$A$1:$A$6,Sheet2!$A$3:$A$7) といれB6まで複写。 Sheet2はA3:A7に (A列) (B列) 26 4 3 8 24 5 54 1 12 6 B3セルに =aa(A3,Sheet1!$A$1:$A$6,Sheet2!$A$3:$A$7) といれB7まで複写。 順位は、上記のB列それぞれの行に出ています。

gonji
質問者

お礼

回答ありがとうございます。 私にとってはけっこう難しそうですが、 頑張って理解してみます。 明日職場で試します。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

連続したシート、連続した列なら =RANK(A1,Sheet1:Sheet2!A:A,0) のようにできます。

gonji
質問者

お礼

回答ありがとうございます。 明日職場でやってみます。 わりとシンプルな表なので、 この方法でいけそうな予感がします。

gonji
質問者

補足

関数が正しくありませんといわれてしまいました・・・。

関連するQ&A

  • エクセルのrank、範囲を複数のシートから指定できますか?

    エクセルで順位を出します。 範囲を複数のシートにまたがって指定したいのですが、 うまくいきません。よい計算式があれば教えてください。 sheet1のA列、sheet2のA列、sheet3のA列の総合の順位をださなければなりません。 よろしくお願いします。

  • Excel 複数範囲で順位付け

    MS-Excelで、複数の範囲において、それぞれの値の順位を調べようと思い、AVERAGE関数やMAX関数などと同様に、RANK関数でも複数の範囲を指定してしようとしたのですが、範囲をカンマで区切るのはできないようです。 たとえば、 範囲:A1:A5,C1:C5 調べたい数値が入っているセル:A1 のときに、 RANK(A1,A1:A5,C1:C5) とすると、RANK関数の書式は、 RANK(数値,範囲,[順序]) なので、C1:C5が順序扱いとなり、エラーになってしまいます。 複数範囲に名前をつけて、範囲に名前を指定してみましたが、それでもエラーになりました。 どうすれば、複数の範囲において順位を調べられるのでしょうか? RANK関数にはこだわっていません。 マクロでも構いません。 よろしくお願いします。

  • Rank付けについて

    エクセルでRank付け(順位)を考えています。 Rank関数で処理しようと考えたのですが,A列のコード番号が一定ではないため、処理に困っています。場合によってはマクロも考えています. どなたかアドバイス頂けないでしょうか。 A列にコード番号,B列に数値,C列に順位を入れます. 例えば、A2~A4まで1、A5~A6まで2とあり,A2~A4とA5~A6にはそれぞれおなじ数値が入ります。A列コードは3行分だったり2行分だったりと不規則に下に続いていきます。ただし,まとまたコード番号で固まっています. そのA列の同じコード番号全てに対して、B列の値を元にC列に順位を入力したいのです. コード    数値     順位 1       10       3 1       14       1 1       12       2 2       10       2 2       40       1 5       18       3 5       12       2 5       10       1 5       20       4

  • エクセルのHLOOKUP関数の検索範囲指定で、複数のシートにわたる範囲

    エクセルのHLOOKUP関数の検索範囲指定で、複数のシートにわたる範囲指定は出来ないのでしょうか。 例えば、シート1からシート5まであり、各シートのA1:D10を指定するとか。

  • エクセルVBAで指定範囲をしたい

    今、シート上である文字列を検索してそれを別のシートに転記させる簡単なツールを作っています。 そこでシート丸ごと 検索するのは大変なので、行と列を指定範囲するように入力するようにしました。 例: [列]→ A [行]→ 10 入力した列の値を数値に変換したいのですが、どうすればよいのでしょうか? 例えば Aであれば1, Bであれば2・・・ Zであれば25 のようにしたいのです。

  • 【エクセル】重複項目内でのみのrankは・・・

    エクセルでのrank関数について教えてください! 下のような表になっています。   A   B    (理想の結果) 1 あ  30    2 2 あ  50    1 3 あ  10    3 4 い  60    1 5 い  15    2 6 う  38    1 とあります。ここで、単純にrank関数を使って順位を 示すのではなく、A列の「あ」の中での順位、 「い」の中での順位・・・といった結果にしたいのです。 重複データを抽出・・・といった関数の組立方が さっぱりわかりません。 手動でrank範囲を指定するのには膨大なデータで、 気が遠くなりました。 お手数ですがよろしくお願いします。 

  • エクセル複数シートから一定の範囲を1シートへVBA

    エクセルのVBAで質問です。 A1~A3行までは、タイトル(3行が列タイトル) A4行以降から一定のデータが入っており、商品ごとにシートを分けています。 列BF4~BM81までのデータを自動でコピーし、全データシートも自動でできればと思っています。 BF4列には、日付が入っており、複数のシートからコピーされたものは、日付順にて並べたい。「全データシート」を自動で作成する方法は、ネットにて調べることができたのですが、一定の範囲内の複数シートを合算し、日付順に並べ替えて自動でコピーするというのが分かりません。 VBAも全くの初心者です。 詳しくお教えいただればと思います。 よろしくお願いします。

  • EXCELで指定した範囲の切り取り貼り付け

    Excelで シート1のA1~E1000までデータがあります。 B列には0~1500の数値データがあり昇順で並んでいます。 このB列のデータの700~1000の数値データのA~E列全ての範囲を「切り取り」・シート2に「形式を指定して貼り付け」(値)という作業をマクロにてできませんか? 尚、1つセルが下がるごとに1数字があがるとは限りません。 大変困ってます。詳しい方ご教授ください。

  • Large関数、複数範囲を指定できますか?

    配信されたメルマガ内のURL「リンク1」と「リンク2」のクリック数の中からランキングをつけたいと思っています。(B列とE列) 範囲指定はひとつしかできないと思うので、列が連続していない場合は、どのようにすればよいでしょうか? また、ランキング結果は予め"Sheet2"にした順位表(A列の順位は手で入力しておきます)のB列に値(クリック数)が表示されるようにしたいです。値が同じ場合(E3とB6など)は上から順番に取得できればよいです。A列の順位は後で修正しますので。 そして同時に"Sheet1"A列の配信日を"Sheet2"C列に表示できれば尚良いのですが。 同時に複数の質問で申し訳ありません。 部分的な回答でも構いませんので、よろしくお願いします。 Excel2000です。 "Sheet1"    A    B     C   D    E    F    G 1 配信日      リンク1    リンク2 2    クリック数 注文件数 金額 クリック数 注文件数 金額 3 0101   10     0   0    20     0   0 4 0115   15     0   0   15     0   0 5 0201   10     0   0   35     2  15000 6 0215   20     0   0   10     0   0 7 0301   30     1   5000  17     0   0 "Sheet2"    A   B      C 1  順位 クリック数  配信日 2  1位   35     0201 3  2位   30     0301 4  3位   20     0101 5  4位   20     0215 6  5位   17     0301

  • エクセル関数の範囲指定を、座標数値で指定したい

    address関数とindirect関数で、行・列を数値で指定して、セルの値が求められますが、同じように行・列の数値を4つ使って範囲の指定をしたいのですが、どのような関数を使えばよいでしょうか? 具体的には、=MATCH(A1,範囲,1)の範囲を、2組の座標の数値で指定したいのです。

専門家に質問してみよう