ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

列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列以降の列の数値を乗じて各列の最終行に合計を出したい

エクセルで集計をしたいのです。
うまく説明できませんが教えてください。
列数が100列以上ある集計表です

A列の1~20行の固定した数値にB列~100列以上の1~20行の各列の数値を乗じてそれぞれの列の合計をそれぞれの列の21行目に出したいのですがどうしたらいいか教えてください。

Aベストアンサー

B21に
=SUMPRODUCT($A$1:$A$20,B1:B20)
とします。後は横にコピーします。

Qエクセルで種類を数える関数が無いのは何故?

エクセルで種類を数える関数が無いのは何故なんでしょうか?

エクセルで種類を数えるには、いくつかの関数を組み合わせるのが一般的ですよね?
直接数える関数が無いのは、訳があるんでしょうか?

Aベストアンサー

>>エクセルで種類を数える関数が無いのは何故なんでしょうか?

やっぱり、そういう関数が必要な方が全体からみたら少数派だと、エクセルの開発者たちが考えているからではないかと思います。
また、既存の関数を組み合わせたら、対処可能だから、無理して新しい関数を作る必要性もない、開発の優先順位が低いって判断もあるでしょうね。

私は、エクセルの表を作ったり、エクセルVBAでプログラムを作ったりしますけど、そういう関数が必要になったことが全くありませんし。

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エクセルではIF関数なのにアクセスではIIF関数?

なぜエクセルではIF関数なのにアクセスではIIF関数?

IF関数はアクセスではIIF関数になりますが、
なぜ「I」が増えるのでしょうか?

またIF関数はイフ関数と読みますが
IIF関数は「イイフ」関数と読めばいいのでしょうか?

よろしくお願い致します。

Aベストアンサー

>エクセルではIF関数なのにアクセスではIIF
アクセスでも、形だけについて言えば(関数とステートメントの違いはあるが形だけで言うと)
・クエリのグリッドで使う場合と
・VBAのモジュールで使う場合と
・アクセスのSQL文でどうか
あります。
アクセスでもVBAではIFは使えます。
クエリのグリッドではIFは使えないようだ(「式に未定義関数Ifがあります」、のエラー)。
SQLではIF,IIFは使えません。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=14014&KLOG=29
エクセル関数にも、IIF関数が増えたかと思ったが、まだ増えてないようだ。
エクセルでもVBAではIifが使えます。
伝統的にIIFがアクセスの方で設けられている。理由は聞いても誰にもわからないのではないか。
ーー
読み方は、ここに質問するより、Googleなどで照会するのが良い。
(こういう一般的な質問は、ここよりGoogleなどの照会のほうが良い。)
「iif 読み方」で照会。
「アイイフ」が多いようだ。
http://barbwire.blog49.fc2.com/blog-entry-43.html ほか

>エクセルではIF関数なのにアクセスではIIF
アクセスでも、形だけについて言えば(関数とステートメントの違いはあるが形だけで言うと)
・クエリのグリッドで使う場合と
・VBAのモジュールで使う場合と
・アクセスのSQL文でどうか
あります。
アクセスでもVBAではIFは使えます。
クエリのグリッドではIFは使えないようだ(「式に未定義関数Ifがあります」、のエラー)。
SQLではIF,IIFは使えません。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=14014&KLOG=29
エクセル関数に...続きを読む

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ベストアンサー

幹事が会員カードを持っていれば、他の全員が非会員でも、全員会員料金です。

ですから、
「一人だけ会員カード持っている」場合は、その人が幹事になって支払いをすればOK。
会員カードを持っている人が誰一人としていない場合も、誰か一人その場で入会すればOK。

ただし学生料金を利用する場合は、全員が学生証を持っている必要があります。

QA列の特定条件のセルのときC列の数値を集計する関数

以下のA列に1から3の値が入っている時、
例えば1の時のC列の数値を集計できる関数はありますか?

A列1の時調べるとC列は1が1個、2が1個、3が1個です。
A列2ではC列は1が1個です。
A列3ではC列は1が1個です。

_|A|B|C
1|1| |3
2|2| |1
3|1| |2
4|3| |1
5|1| |1

よろしくお願いします。

Aベストアンサー

こんにちは!
私もNo.1さんのように単純にSUMIF関数でOKかと思いましたが・・・

A・C列は数値というより、「男」「女」等の区別なのですね?

そうであれば、SUMPRODUCT関数で対応できると思います。
↓の画像では A列=1で C列=1の場合の個数のみの計算式を入れています。
=SUMPRODUCT((A2:A6=1)*(C2:C6=1))
他の求めたいセルはアレンジしていただければ、希望通りになると思います。

尚、余計なお世話かも知れませんが・・・
男、女などの条件が数字だと勘違いの原因になるかもしれませんので、
A列をそのまま「男」「女」
C列を「はい」「いいえ」「どちらでもない」
=SUMPRODUCT((A2:A6="男"(C2:C6="はい"))
としても同じ結果が得られるはずです。
以上、参考になれば幸いです。m(__)m

Q減価償却 旧定額法 残存価格の端数

減価償却(旧定額法)の残存価格は、取得価格の10%ですが、例えば取得価格が123,456円の場合、10%は12,345.6円となり、1円未満の端数が出ます。この場合、正しい残存価格は12,345円と12,346円のどちらなのでしょうか?
また、旧定額法で、取得価格-残存価格が100,000円で耐用年数が6年の場合、1年目~5年目は16,666円、6年目は端数を加えて16,670円の償却で良かったでしょうか?
色々調べても、端数が出ないような例しか見つからず、困っています。

Aベストアンサー

お礼の中の補足について
原則的に小数点以下は切り捨ての計算となります。
従いまして正しい残存価格は12,345円となります。
端数分は、最後の年で行う事となります。
ご参考まで

Qエクセルの関数を教えて下さい。 例 シート3 11月の売上集計 A 列 B列 C列 D列 1行 い

エクセルの関数を教えて下さい。

例 シート3 11月の売上集計
A 列 B列 C列 D列
1行 い ろ は
2行 りんご 3 2 4‥
3行 累計 15 12 13‥
4行 みかん 2 5 6‥
5行 累計 12 14 16‥
と売上の集計が続いています。
この時、2行目と4行目は手入力してます。
B3は=B2+10月シートB3となります。
C3はC2+10月シートC3となります。
5行目も同様です。
このシートをコピーして12月分を作った時、
B3は=B2+10月シートB3の10月を11月に
変更してます。
自動的に変更できる方法はないですか❓

Aベストアンサー

11月の
>シートをコピーして12月分を作った時、
>B3は=B2+10月シートB3の10月を11月に
>変更してます。
>自動的に変更できる方法はないですか❓
…と言う事ですか?
ならば月の数字をいじれば良いだけですので、CELL関数でシート名を取得して、それを加工しましょう。

 =CELL("filename",A1)
これで、このCELL関数が使われたシート名を含んだ文字列を取得できます。
 C:\Users\あさご\Documents\Excel_file\[売り上げとか.xlsx]12月の売上集計
のような値が返ってきますので、ファイル名の後ろにある「 ] 」の位置をFIND関数で見つけて、その次の文字から最後の文字までをシート名としてMID関数などで切り出し、
”月の売上集計”をSUBSTITUTE関数で削除する(空欄に置き換える)か、得られたシート名の先頭から「月」の文字の前の文字までを別途切り出す。
これで月の数字の部分を得ることができます。
あとはこの数字を足したり引いたりしてINDIRECT関数に入れて参照したいシート名にすればよいです。
1月には12月のシートを参照したいという事になるでしょうから、そのあたりも考慮して作りましょう。
(MOD関数を使うと良いかもしれない)

11月の
>シートをコピーして12月分を作った時、
>B3は=B2+10月シートB3の10月を11月に
>変更してます。
>自動的に変更できる方法はないですか❓
…と言う事ですか?
ならば月の数字をいじれば良いだけですので、CELL関数でシート名を取得して、それを加工しましょう。

 =CELL("filename",A1)
これで、このCELL関数が使われたシート名を含んだ文字列を取得できます。
 C:\Users\あさご\Documents\Excel_file\[売り上げとか.xlsx]12月の売上集計
のような値が返ってきますので、ファイル名の後ろ...続きを読む


人気Q&Aランキング