- ベストアンサー
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) 文がわかりにくいと思いますが、汲み取ってください。 わかる方よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
C1:C4セルを選択して =MOD(LARGE(A1:A4*(MAX(B1:B4)+1)+B1:B4,ROW(A1:A4)),MAX(B1:B4)+1) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる) でできますが、意味がわからないと思いますので作業列を使うことをお勧めします。
その他の回答 (5)
- KURUMITO
- ベストアンサー率42% (1835/4283)
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)))
お礼
回答有難うございます。 やはり作業列を作るべきですか。 ROWは一度しか使ったことがありません。 今後のアイデアに役立てたいと思います。
No.2です。 私のパソコンではエラーは出ませんでした。どこか入力間違いをしているのでは?
お礼
申し訳有りません。間違えていました。 質問が下手で、わかりにくいようなので例えます。 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)
RANK関数は同じ値だと順番が出る。 Large関数は値はその点狂いはないが、どこの行か決められない。 等しいものは上の行しか探せない。 ーー >B列が大きい数字 とはどういう意味ですか。A列よりB列が大きいときだけ選ぶのか ーー これらのことを良く考えて再質問すべきでしょう。 既出回答でよいならば、それでよいが。 >汲み取ってください 補足します、ぐらいの表現にすべき。 質問者が努力すべきこと。回答者に押し付けないこと。
補足
何故そんなことを言われるのですか? うまく説明できなかったので汲み取ってもらえればと思ったのです。 他の方のように汲み取って頂いて言われるのであれば、全然問題ありませんが・・・
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列の最大値が求められます。
お礼
有難うございます。 が、しかし循環エラーがでます
補足
申し訳ありません。間違ってC2の入力をC1にしていました。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
お礼
すごい!完璧です。 配列数式はなんとなく使ったことはありますが、MODは使ったことありませんでした。 作業列を使うのもアイデアを広げる良い機会だとは思っていますが、回答頂いた数式のようにこんな数式があってこんな使い方ができるということを知れて大変うれしく思います。 本当に有難うございます。