列Aに2行目からN(65536)行に100から100単位で5000まで数字が入力されています。
一番高い数値は"MAX"で求められますが、2番目以降の数値が"MAX"、もしくは"LARGE"ではうまく表示されません(それぞれ複数個存在するため)。
何か良い方法はないでしょうか?

A 回答 (4件)

こんにちは。

maruru01です。

例えば、C1~に順に表示するとします。
まず、C1に、

=MAX($A$2:$A$65536)

と入力します。
次に、C2に、

=IF(OR(C1="",C1=MIN($A$2:$A$65536)),"",LARGE($A$2:$A$65536,COUNTIF($A$2:$A$65536,">="&C1)+1))

と入力して、下の行へコピーします。

表示場所が違う場合は、2つ目の数式の「C1」を、1つ目の数式を入れるセル番地に替えてください。
    • good
    • 0
この回答へのお礼

できました!(●⌒∇⌒●) わーい
ありがとうございます。
でもcountifがなんで出てきて、どういう意味なのかいまいち不明ですが。。。
助かりました。

他の方々も非常に参考になりました。ありがとうございました。

お礼日時:2005/04/14 13:49

列Bの2行目からN行目までに次の数式を入力してください。

x行目とした場合
=RANK(AX,A$2:A$N,0)←大きい順
=RANK(AX,A$2:A$N,1)←小さい順
列Cの2行目からN行目までに次の数式を入力してください。x行目とした場合
=COUNTIF(B$2:B$N,B$X)
適当なシートのA1からA20に、それぞれ1から20までの数値を入力し、列Bに次の数式を入力(列B2:CNのレンジ名をDATAとします)
=IF(ISERROR(VLOOKUP(AX,DATA,2,FALSE))=TRUE,"該当なし",VLOOKUP(AX,DATA,2,FALSE)

でやってみてください

この回答への補足

ありがとうございます。
早速式を入れてみました。が、私の入れ方が悪いのか、
列Cには、そのランクにいくつデータがあるかの個数が入力されてしまい、結果、VLOOKUPでも、その個数しか表示されません。
質問の仕方が悪かったのかもしれません。
求めたいのは。。。

1 5000
2 4900
3 4800
4 4500
5 3000




この5000、4900・・・を出したいのですが。私の入力方法が悪く上記の式で問題なければ、ご指摘ください。

補足日時:2005/04/14 13:02
    • good
    • 0

簡単な方法は、データ-フィルター-フィルターオプションの設定で、


設定された範囲(リスト範囲)と
抽出範囲を
設定し、
「重複するレコードは無視する」
で取り出すことは可能です。

そうでなければ、
例えば、
B2 に、「一番高い数値」のMAXで求めたものを入れ、
その次に、B3:~

=IF(ROW(A1)<9,LARGE($A$2:$A$65536,RANK(B2,$A$2:$A$65536)+COUNTIF($A$2:$A$65536,B2)),"")

として、フィルハンドル・ドラッグ・コピーをしてあげれば、出来るかと思います。

この回答への補足

早速のご回答ありがとうございます。
セルに自動的に反映させて、違う場所にそのデータを
リンクさせたいので、オートフィルタはちょっと。
上の式を参考にさせていただきます。
が、その中で、”=IF(ROW(A1)<9”というのはどういう
関数ですか?

補足日時:2005/04/14 11:25
    • good
    • 0

オートフィルタ機能ではだめでしょうか。


・データ範囲選択→データ→オートフィルタ
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
自動的にデータを取得して違うところにリンクさせたいので、オートフィルタはちょっと。
何か関数で取得できればと考えているのですが。

お礼日時:2005/04/14 11:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの下記表について答えを導く関数式とは?

 下記のような形式の車種別の生産予定表があるとします。


  A   B  C  D  E  F  G  
1車種 4/1 2  3  4  5  6日  
2車1  20    30 50
3車2     60 80
4車3              40
5車4  50
6車5     40 30   
7車6              70 10台

 のような少ロットで変動の多い生産予定表について
 4月X日の車Xの生産数を知るにはINDEX+MATCH関数、VLOOKUP+MATCH関数で表を縦横に検索すれば交差するセルの台数を返しますが、仮に台数が分かっているとして、逆の論理として
 車1の生産があった日が4月1日、3日、4日であるという生産対象日を返したい。
 4月3日の生産は車1、車2、車5であるという車種名を返したい。

 これを出来るように関数式を考えていますが、上手く答えを出せません。セルに返る戻り値が一つではありません。
一つの関数式では無理なんでしょうか?VBAが分からないので関数で出せると助かるのですが、方法がありましたら、どなたかご教導お願い申し上げます。
 
 
 

 下記のような形式の車種別の生産予定表があるとします。


  A   B  C  D  E  F  G  
1車種 4/1 2  3  4  5  6日  
2車1  20    30 50
3車2     60 80
4車3              40
5車4  50
6車5     40 30   
7車6              70 10台

 のような少ロットで変動の多い生産予定表について
 4月X日の車Xの生産数を知るにはINDEX+MATCH関数、VLOOKUP+MATCH関...続きを読む

Aベストアンサー

既存の関数のみで行う場合、結果は連続した文字列として1個のセルに表示することになります。単純化のため、ご例示のシートをさらにコンパクトにします。カラムが揃わない場合、メモ帳に貼り付けてご覧ください。

*| A|B|C|D|E|
1|  |1|2|3|
2|車1|4|3| |
3|車2|7| | |
4|車3| | |5|
5|

E2に定義
=IF(B2<>"",$B$1&" ","")&IF(C2<>"",$C$1&" ","")&IF(D2<>"",$D$1&" ","")
以下、E4まで下へドラッグ

B5に定義
=IF(B2<>"",$A$2&" ","")&IF(B3<>"",$A$3&" ","")&IF(B4<>"",$A$4&" ","")
以下、D5まで右へドラッグ

結果
*| A|   B|  C|   D|E |
1|  |   1|  2|   3| |
2|車1|   4|  3|    |1 2 |
3|車2|   7|   |   3|1 3 |
4|車3|    |   |   5|3 |
5|  |車1 車2|車1 |車2 車3|  |

実際のシートの縦横の大きさはいかほどでしょうか。「数式バー」で編集可能な文字列の長さには限りがあります。この方法では実用に耐えない場合、VBAマクロでユーザ定義関数を作成しセルでそれを参照するという方法を検討してください。

既存の関数のみで行う場合、結果は連続した文字列として1個のセルに表示することになります。単純化のため、ご例示のシートをさらにコンパクトにします。カラムが揃わない場合、メモ帳に貼り付けてご覧ください。

*| A|B|C|D|E|
1|  |1|2|3|
2|車1|4|3| |
3|車2|7| | |
4|車3| | |5|
5|

E2に定義
=IF(B2<>"",$B$1&" ","")&IF(C2<>"",$C$1&" ","")&IF(D2<>"",$D$1&" ","")
以下、E4まで下へドラッグ

B5に定義
=IF(B2<>"",$A$2&" ","")&IF(B3<>"",$A$3&" ","")&IF(B4...続きを読む

Qエクセル:A列とB列に同じ数値が合った場合に左側のA列の方を強調したい。

エクセル2000で

A1=12 A2=16 A3=24 A4=5 A5=6
B1=16 B2=23 B3=89 B4=6 B5=10

と入力されていたとします。この場合にA列とB列には16と6が共通の数として存在しています。

そこで、共通な数値が入力されているセルのうち、最も左側にある列(この例の場合はA列)を強調したいのです。関数を使う場合の数式をご存知の方がいらっしゃいましたら教えていただきたいと思います。


強調の仕方は、

1太字にする。
2セルを塗りつぶす
3文字の色を変える

などどんな手段でも結構です。

Aベストアンサー

(例データ)A1:B5
1216
1623
2489
56
610
(条件付き書式)
A1:A5を範囲指定
書式
条件付き書式
式が
=COUNTIF($B$1:$B$6,A1)>=1
書式設定(例えばセルの色を緑に)
OK
(結果)
16(A2)
6 (A5)
が緑になった。
A1:A5を範囲指定して、書式設定すると、A1をA2:A5に
コピーする必要はありません。
コピーと同じ効果になっています。

Qエクセルの関数にて【今日の日付から3ヶ月後の日付を入力する関数とは?】

3ヶ月ごとに更新する契約書を作成しています。
ある日付からちょうど3ヶ月後の一日前が出るような関数を探しています。

例えば、
セルに今日の日付「9月6日」と入れると、そのとなりのセルには契約の切れる「12月5日」が出るようにしたいのですが、うまい具合に出来ません。

GOOの賢人様方、お知恵をお貸しください!

Aベストアンサー

アドインで分析ツールが組み込まれている場合は

=EDATE(A1,3)-1

そうでない場合は

=DATE(YEAR(A1),MONTH(A1)+3,DAY(A1))-1

ただし、11月30日をA1に入力した場合、答えが3月1日になってしまうようです。
(うるう年であれば2月29日となりOK)

QExcel2000で、2列に存在する数値を1列だけの表示にしたい。

こんにちは。Excel2000を使用しています。

A列     B列
100     100
102
104     102
105     104 
106     105

例えば、上記のような状態で、A列とB列があるとします。
この時、A、B両列に存在している数字はA列から消し、
A列にしか存在していない数字のみを残したいのです。
(↑今回の場合、106のみ)

今回の上記の表であれば、
A列     B列
       100    

       102
       104 
106     105

のようになる感じです。
A列、B列の両方に存在する数字は、必ずしも同列とは
限りません。

ご回答宜しくお願い致します。

Aベストアンサー

#2です。
私の方法は、データは厳然とA列にある訳なので、
見えなくなった結果を使って何かしようとしても無理ですよ。
たとえば、「IF(A1="",・・・」など

QエクセルのSAM関数の「SAM」とは何かの略語なのでしょうか?

エクセルのSAM関数の「SAM」とは何かの略語なのでしょうか?
例えば、MAX関数であれば「MAX」が日本語で「最大値」だと分かります。
「AVERAGE」であれば、「平均」です。
詳しい方がいましたら、宜しくお願い致します。

Aベストアンサー

SUM は、最初、SUMMARY だと私も思っていました。しかし、Summary には、「合計」という意味はなく、要約するという意味です。現在、私自身は、数学用語の、SUMMATION =Σ (総和、合計)という語の省略形だと思っています。

Summation (サメイション) [数学用語]
the total amount or number when two or more things are added together.
[2つまたはそれ以上のものを一緒に加えた時に、その合計値または数値のこと]

ただ、この命名は、Microsoft ともロースタ社とも関係がなく、1970年代の後半、ハーバード大学ビジネススクールの学生、ダンブルックリンらによるもので、彼らはパテントなどの主張も出来ずに、大手の会社に取り入れられてしまい、その時のものが現在まで流用されています。したがって、誰も、その語源に対して主張ができません。

1980年代に、IBMから出ていた表計算の本に、SUM関数の出来た秘話も読んだことがあります。学生さんが、教授が、授業中に何度も黒板を書いたり消したりするのをみて、PCで、できたらと考えたそうです。当時、すでに大型コンピュータには表計算は存在していましたが、PCにはありませんでした。計算範囲の中に、文字列を入れても、エラーを出さずに、合計が出せるという所が、この関数の特徴です。

SUM は、最初、SUMMARY だと私も思っていました。しかし、Summary には、「合計」という意味はなく、要約するという意味です。現在、私自身は、数学用語の、SUMMATION =Σ (総和、合計)という語の省略形だと思っています。

Summation (サメイション) [数学用語]
the total amount or number when two or more things are added together.
[2つまたはそれ以上のものを一緒に加えた時に、その合計値または数値のこと]

ただ、この命名は、Microsoft ともロースタ社とも関係がなく、1970年代の後半、ハーバード大学...続きを読む

Q左から2列目を検査値とし1列目の数値を返す方法は

VLOOKUP関数では範囲の1列目で特定の値を検索し、指定した列と同じ行にある数値を返しますが、これを2列目で特定の値を検索し、左端の1列目の値を返す方法を探しています。可能でしょうか?
1列目にNo.、2列目に氏名があります。これを名前を検索して、1列目の番号を返したいわけです。列を入れ替えれば可能ですが、入れ替えずにやる方法あれば教えてください。よろしくお願いします。

Aベストアンサー

作業セルを一番左に持ってくるしかないと思います。
検索値に等しいならば1となるようにしておいて、作業セルも含めて、VLOOKUP関数の検索域としてやるわけです。
すでにデータが入っていて一番左に作業セルがとれない場合でも、列を挿入してやれば、個々の関数とか入っていても自動的にずれに対応してくれます。

Qエクセル関数で使われる10^10とは何でしょうか。

エクセル関数で使われる10^10とは何でしょうか。

他の教えて!gooで書かれていた数式を用いてデータ取得には成功したのですが
関数の内容が知りたいのでわかるかたお願いします。

参考アドレス: http://oshiete.goo.ne.jp/qa/6085476.html
(以下参照文)
----------------------------------------------------------
例えばA1セルからE1000セルの間で数値の入っている下端のデータであれば次のように作業列を設けて求めることができます。
初めに1行目に新たな行を挿入します。
A1セルには次の式を入力してE1セルまでオートフィルドラッグします。

=MATCH(10^10,A2:A1000)+1

----------------------------------------------------------

上記に出てくる10^10は何を表わしているのでしょうか。。
どうぞよろしくお願いいたします。

Aベストアンサー

10^10とは10の10乗で100億です。

=MATCH(10^10,A2:A1000,1)

100億より小さい数字で最大のものを求めるということで、その表で最大値が決まっていれば、それより大きい数字であれば何でもOKです。

ちなみに、MATCH関数で、照合の型に 1又は省略の場合、昇順になっていない場合、検索値より小さいもので、一番下のものの位置を返します。

QA列の数値をB列に順次足していきたいのですが。

A列の数値をB列に順次足していきたいのですが。
エクセル2007で家計簿をつけています、A2からA50に金額が日毎に入力されA51に合計が出ます。
画面上にはA20程度しか映らないので日々の合計を確認し忘れることがあります、そこでリアルタイムで照合したいのです。B3=A2+A3,B4=A2+A3+A4,B5=A2+A3+A4+A5を表示させたいのです、どんな式をA3に入れればよいのですか。宜しくお願いします。

Aベストアンサー

ANo.4です。
B4に
=B3+A4という式を入れてからコピーです。

Qワークシート関数とはどのことなのですか?

【1】エクセルのワークシート上で使う=TODAY()などの関数

【2】VBAのCountなどのWorksheetFunction

【3】VBAのLENなどの関数

どれのことを俗に言う「ワークシート関数」と言うのでしょうか?
VBAで使う【2】【3】のことですか?

Aベストアンサー

ワークシート上で使う関数のこと。つまり1です。

QエクセルでB列の数値がA列(A1:A10)の範囲に存在するかどうかを知りたい

こんばんは。
エクセルでこのようなことができるのかどうか分からないので、教えてください。

B列の数値がA列(A1:A10)の範囲に含まれる数値なら○、含まれない数値なら×と、C列に表示したいのですが、エクセルでそのようなことはできるのでしょうか。
できるのであれば方法を教えていただけますでしょうか。
よろしくお願いいたします。

<<最終的な結果は以下のように表示したいです>>

  A B C

1 12 19 ○

2 15 20 ○

3 19 28 ○

4 20 30 ×

5 23 34 ○

6 28 35 ×

7 32 38 ×

8 34 39 ○

9 39

10 40

Aベストアンサー

セル C1 に式 =IF(COUNTIF(A:A,B1),"○","×") を入力して、此れを下方にズズーッと複写


人気Q&Aランキング