• ベストアンサー

excel 2つの条件

   A   B  1  3  22 2  4  15 3  2  10 4  4  10 のような表があったとします。 A列で1番目に大きくてB列が大きい数字を求めたい(答えB2の15) 同じように A列で2番目に大きくてB列が大きい数字を求めたい(答えB4の10) 同じように A列で3番目に大きくてB列が大きい数字を求めたい(答えB1の22) 文がわかりにくいと思いますが、汲み取ってください。 わかる方よろしくお願いします。

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

  • ベストアンサー
回答No.4

C1:C4セルを選択して =MOD(LARGE(A1:A4*(MAX(B1:B4)+1)+B1:B4,ROW(A1:A4)),MAX(B1:B4)+1) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる) でできますが、意味がわからないと思いますので作業列を使うことをお勧めします。

shinomail
質問者

お礼

すごい!完璧です。 配列数式はなんとなく使ったことはありますが、MODは使ったことありませんでした。 作業列を使うのもアイデアを広げる良い機会だとは思っていますが、回答頂いた数式のようにこんな数式があってこんな使い方ができるということを知れて大変うれしく思います。 本当に有難うございます。

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

C1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",RANK(A1,A:A)+RANK(B1,B:B)/1000) D1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(C1="","",RANK(C1,C:C,1)) E1セルから下方に答えのB列の数字を表示させるのでしたらE1セルに次の式を入力し下方にオートフィルドラッグします。 =IF(COUNTIF(D:D,ROW(A1))=0,"",INDIRECT("B"&MATCH(ROW(A1),D:D,0)))

shinomail
質問者

お礼

回答有難うございます。 やはり作業列を作るべきですか。 ROWは一度しか使ったことがありません。 今後のアイデアに役立てたいと思います。

noname#99913
noname#99913
回答No.5

No.2です。 私のパソコンではエラーは出ませんでした。どこか入力間違いをしているのでは?

shinomail
質問者

お礼

申し訳有りません。間違えていました。 質問が下手で、わかりにくいようなので例えます。 A列が成績表、B列がテスト結果とします。 1行目を1さん、2行目を2さん、3行目を・・・。 成績が良い順に答えを導きたかったのです。 2さんと4さんは成績は同じですがテスト結果が2さんが良いので、 1位は2さんの15点(B2) 2位は4さんの10点(B4) 3位は1さんの22点(B1) 4位が3さんの10点(B3) という感じだったのです。

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

RANK関数は同じ値だと順番が出る。 Large関数は値はその点狂いはないが、どこの行か決められない。 等しいものは上の行しか探せない。 ーー >B列が大きい数字 とはどういう意味ですか。A列よりB列が大きいときだけ選ぶのか ーー これらのことを良く考えて再質問すべきでしょう。 既出回答でよいならば、それでよいが。 >汲み取ってください 補足します、ぐらいの表現にすべき。 質問者が努力すべきこと。回答者に押し付けないこと。

shinomail
質問者

補足

何故そんなことを言われるのですか? うまく説明できなかったので汲み取ってもらえればと思ったのです。 他の方のように汲み取って頂いて言われるのであれば、全然問題ありませんが・・・

noname#99913
noname#99913
回答No.2

A列に2番目はありません。1、3、4番目でよければ、 (1)D1に「=IF(RANK(A1,A:A)=C$1,B1,"")」と入力し、D4までコピー (2)C2に「=MAX(D:D)」と入力 これで、C1にA列での順位(1、3、4)を入力すれば、それに対応したB列の最大値が求められます。

shinomail
質問者

お礼

有難うございます。 が、しかし循環エラーがでます

shinomail
質問者

補足

申し訳ありません。間違ってC2の入力をC1にしていました。

回答No.1

C1セル =A1*100+B1 D1セル =RANK(C1,$C$1:$C$4) C1:D1を下へオートフィル C6下へ連番 D6 =INDEX($B$1:$B$4,MATCH(C6,$D$1:$D$4,0)) 下へオートフィル とやりたいことはこんなことでしょうか? 添付図参照

shinomail
質問者

補足

そうなんです。 その通りなんですが、列を増やさないで計算したいのです。 無理ですかね?

関連するQ&A

専門家に質問してみよう