gooポイントが当たる質問投稿キャンペーン>>

複数ある数字の○番目に大きな数字を抜き出す。

これに便利なのはLARGE関数ですね。

例 : A1~A15のセルのうち2番目に大きな数字を表示させる

=LARGE(A1:A15,2)


それでは、範囲が飛び飛びの複数セルの中から探すことは出来るのでしょうか?

A1 A3 A5 A6 の中から2番目に大きな数字を抜き出す。

と言うような事です。


詳しい方、よろしくおねがいしますー!!

A 回答 (1件)

=LARGE((A1,A3,A5:A6),2)


のように計算できます。
    • good
    • 2
この回答へのお礼

わ、keithinさん お久しぶりです。

なるほど、括弧とそこにカンマで区切って複数個所指定するのですね。


ご回答ありがとうございました。

お礼日時:2014/01/13 23:41

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

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

配信されたメルマガ内の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

配信されたメルマガ内のURL「リンク1」と「リンク2」のクリック数の中からランキングをつけたいと思っています。(B列とE列)
範囲指定はひとつしかできないと思うので、列が連続していない場合は、どのようにすればよいでしょうか?

また、ランキング結果は予め"Sheet2"にした順位表(A列の順位は手で入力しておきます)のB列に値(クリック数)が表示されるようにしたいです。値が同じ場合(E3とB6など)は上から順番に取得できればよいです。A列の順位は後で修正しますので。
そして同時に"Sheet1"A列の配...続きを読む

Aベストアンサー

◆Sheet2のA2~A6 に1,2,3,4・・と入力し、表示形式を、 0"位" とします

B2=LARGE((Sheet1!$B$3:$B$7,Sheet1!$E$3:$E$7),A2)
★下にコピー

C2=INDEX(Sheet1!$A$1:$A$7,LARGE(INDEX(((Sheet1!$B$3:$B$7=B2)+(Sheet1!$E$3:$E$7=B2))*ROW(Sheet1!$A$3:$A$7),),COUNTIF($B$2:$B$6,B2)-COUNTIF($B$2:B2,B2)+1))
★下にコピー

QExcelで最大値の入っている数値の右側にある項目名を拾いたい。

Excelで最大値の入っている数値の右側にある項目名を拾いたい。

下のようなデータがあります。(A列は年、Bは何かの生産量・・とします)

1 2000 7
2 2001 11
3 2002 14
4 2003 10
5 2004 9
6 2005 8

生産量(B列)の最大値を求めるのは=MAX(B1:B7)で"14"が得られると思いますが、求めているのは"14"の入っている年の"2002"という数字を隣のC1に入れたいと思います。
どのような関数が必要でしょうか?

Aベストアンサー

こんばんは!
一例です。

↓の画像でC2セルに表示するようになりますが・・・

C2セルの数式は
=INDEX($A$2:$A$1000,MATCH(MAX(B2:B1000),B2:B1000,0))
にしています。
(エラー処理はしていません)
A列の1000行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、参考になれば幸いです。m(__)m

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

QCOUNTIF関数 離れたセルを選択したい

A列に
10
10
11
11
12
12

がはいっていて、
1行目、3行目、5行目が10以上の数を数えたいのですが
=COUNTIF(A1,A3,A5,">10")
のように離れたセルを選択することは出来ないのでしょうか?

エラーになるようです。
COUNTIF関数じゃなければ可能ですか?

Aベストアンサー

No.1 さん、No.2 さんのご回答で、正しい答えが出ます。No.3 さんの数式については、名前を付ける範囲が連続したセル範囲である場合には、COUNTIF 関数が正しく機能します。

そのほか、作業列を使って答えを出す方法もご紹介します。添付図では、次式を記入しています。

B1 1
C1 =(a1>10)*b1
C8 =sum(c1:c6)

1 行おきに「1」を記入する方法の一例。B1 セルに「1」を記入した後、B2 は空白のままの状態で、B1:B2 のセル範囲を選択。次いで、キーボードの Ctrl キーを押しながら右下隅の角を下方向にドラッグすることで、1 行おきに記入されます。

なお COUNTIF の仕様では、第 2 引数までしかありません。したがって質問文のように、第 4 引数まで持たせた数式を書くことはできません。定められた以外の方法で関数を使っても正しい答えが出ないというのは、ごく当然の結果です。

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

QExcel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合

MATCH関数で、検索した値が複数ある場合に1つしか出なくて困っています。
(例)
   A B C D
1 年月日 種類 番号 備考
2 4月1日 肉類 1
3 4月2日 野菜 2
4 4月3日 肉類 1
5 4月4日 果物 2
6 4月5日 野菜 1
7 4月6日 果物 3
8 4月7日 果物 2
9 4月8日 肉類 1

この表で、D9の備考の欄に「種類:肉類、番号:1」と同じものがあった時の日付を、新しい日付で取り出したいのです。

INDEX(A2:A8,(MATCH(B9,B2:B8,0)+MATCH(C9,C2:C8,0))/2)
としたのですが、本当は4月3日を取り出したいのですが、4月1日が出てきます。
どのようにしたら良いでしょうか?
Excel2003です。
よろしくお願いします。

Aベストアンサー

MATCH関数を使用しませんが、D9の書式を日付にして、
=MAX((A2:A8)*(C2:C8=1)*(B2:B8="肉類"))
と、入力してShift+Ctrl+Enterキーで入力完了してみてください(配列式になります)。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QエクセルのMAX関数を複数条件で

エクセルのMAX関数を下記のような複数条件をつけて
使いたいのですが、自分で式を書いてもうまくいきません。
アドバイスをよろしくお願いします。

A1に「部署名」、B1に「受注個数」、C1に「受注日」と見出しをし
(A2:C9)にデータを入力した表があるとします。
部署名には営業1部、営業2部、営業3部のいずれかが入力されていて、
受注日には6月22日と、6月23日のいずれかの入力があるとします。
この表で「営業1部」であり、「6月22日」のものである受注個数の
最大の値を返したいのです。
日付「6月22日」は別途(E2)に参照用として入力したものを使いたいです。

=MAX(IF(AND(A2:A9="営業1部",C2:C9=E2),B2:B9,""))

これではダメでしょうか。
初歩的ですみません、よろしくお願いいたします。

Aベストアンサー

DMAX関数を使うことで、可能です。
(配列数式を使う方法もありますが、他にも流用したいという要望もあるようですので
 こちらのほうがよいでしょう)

DMAX(Database,フィールド,Criteria)
http://excel.onushi.com/function/dmax.htm

QExcelのLarge関数で抽出したセルの行/列名

表からLARGE関数を使い上位5までの値を検索します。
この時、該当の値のセルの行項目、列項目も同時に表示したいです。

例:
検索されるセルの値=5
行名=あさひ
列名=富士
の場合に、
1セル内で、「5:あさひ/富士」という結果を返したいです。

方法をご教授ください。

Aベストアンサー

元データがどのようなレイアウトになっているかわからないのですが(検索されるセルの値というのが1~5番目の数字という意味なら)、添付画像のようなリストで、A10セル以下に1~5の順位の数字が入力しておき、B10セルに以下の式を入力して下方向にオートフィルしてください。

=LARGE($B$2:$G$6,A10)&":"&INDEX($A:$A,MAX(INDEX(($B$2:$G$6=LARGE($B$2:$G$6,A10))*ROW($B$2:$G$6),)))&"/"&INDEX($1:$1,MAX(INDEX(($B$2:$G$6=LARGE($B$2:$G$6,A10))*COLUMN($B$2:$G$6),)))


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング