Excelの条件式で列を表示させる方法は?

このQ&Aのポイント
  • Excelの条件式で列を表示させる方法を教えてください。
  • 具体的には、G1とG2に対応したA列を表示させる方法が知りたいです。
  • よろしくお願いします。
回答を見る
  • ベストアンサー

excel 2つの条件(続き)

http://okwave.jp/qa5054165.html​ の続きですが、    A   B  C  D  E  F   G 1  あ   3  22    4  15  ? 2  い   4  15    4  10  ? 3  う   2  10 4  え   4  10 E1に=LARGE(B1:B4,1) E2に=LARGE(B1:B4,2) F1とF2に{=MOD(LARGE(B1:B4*(MAX(C1:C4)+1)+C1:C4,ROW(B1:B4)),MAX(C1:C4)+1)} をいれました、画像のようにG1とG2に対応したA列を表示させるにはどうすれば良いでしょうか? よろしくお願いします。 

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

G列だけでよければ =INDEX(A:A,SUMPRODUCT((B$1:B$5=E1)*(C$1:C$5=F1)*ROW(A$1:A$5))) 下へコピィします。

shinomail
質問者

お礼

完璧です。 有難うございました。自分でINDEXとSUMPRODUCTを使用してやってみたのですが、全然出来なかったので・・・何が間違っていたのか気付くことが出来ました。

shinomail
質問者

補足

他の方より指摘があったのですが、C4も15だった場合にはどうすれば良いでしょうか?

その他の回答 (2)

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

エクセルには、2列に有る値をそれぞれ共に一致する行を探す関数はありません(注)。1原化するために、作業列を作るのが判りやすい。その場合各列データについて、定桁式の結合をしないとおかしなことになる。 1と10と、11と0が同じ110になるような結合では困る。 例 B列   C列   D列   E列 3 22 0322 322 4 15 0415 415 2 10 0210 210 4 10 0410 410 C列は文字列の例で =TEXT(B1,"00")&TEXT(C1,"00") D列は数字の例で=B1*100+C1 です。以下ではD列の例でやることにすると F列 G列 H列 4 15 い 4 10 え H1の式は =INDEX($A$1:$A$10,MATCH(TEXT(F1,"00")&TEXT(G1,"00"),$D$1:$D$10,0)) これを下方向告に式をデータ数だけ行う。 結果 上記H列 === B,C列で4-15の組み合わせが2つ以上出現しないことを質問に 書くべきです。あってもMATCHやVLOOKUP関数では探せません。 (注)1つの関数は存在しない。関数を組み合わせれば、その回答が出るかもしれない。出たとしても、それを読み解いたり、応用するのは、初心者には難しいものとなろう。 ーーー VBAでやるとしてもB列で4のデータを絞り込み(まず中間的に保持し、保持したものを対象に15を探すことになる。 それ(一時溜め込み)がイヤなら、全行に渉って、B列4AND C列15か比較しないとならない。それをF,G列行数だけ繰り返すことになる。

shinomail
質問者

お礼

回答有難うございます。 やはり列を追加した方がわかりやすいのですね。 >B,C列で4-15の組み合わせが2つ以上出現しないことを質問に 書くべきです。あってもMATCHやVLOOKUP関数では探せません 2つ以上出現しないとは言っていません。2つ以上出現した場合は別のやり方をしないと出来ないのですね。

noname#99913
noname#99913
回答No.1

D1:=B1+C1/100 E1:=RANK(D1,D:D) F1:=ROW() G1:=MATCH(F1,E:E,0) H1:=OFFSET($A$1,G1-1,0) I1:=OFFSET($A$1,G1-1,1) J1:=OFFSET($A$1,G1-1,1) D1からJ1を下へ4行目までコピー

shinomail
質問者

お礼

回答有難うございます。 細かくなっていたのでひとつずつ意味を考えることができました。 I1とJ1が同じだったので J1を=OFFSET($A$1,G1-1,2)で使用しました。

関連するQ&A

  • excel 2つの条件(第三弾)

    http://okwave.jp/qa5057168.html の更に続きですが、    A   B   C  D  E   F  G 1  あ   3  22    4  15  ? 2  い   4  15    4  15  ? 3  う   2  10    4  10  ? 4  え   4  10 5  お   4  15 想定していなかった5行目を追加しました。 E1に=LARGE(B1:B5,1) E2に=LARGE(B1:B5,2) E3に=LARGE(B1:B5,3) F1とF2とF3に{=MOD(LARGE(B1:B5*(MAX(C1:C5)+1)+C1:C5,ROW(B1:B5)),MAX(C1:C5)+1)} G1に=INDEX($A$1:$A$5,SUMPRODUCT((B$1:B$5=E1)*(C$1:C$5=F1)*ROW(A$1:A$5)))を入れましたがB列とC列が同じ組み合わせがある場合ではエラーが出てしまいます。 G1に『い』、G2に『お』を表示させる事は可能でしょうか? 重ね重ね申し訳有りませんがわかる方おりましたらよろしくお願いします。

  • エクセル 行を列に参照する NO.2

    お世話になります。 昨日 http://sp.okwave.jp/qa/q9264221.html で質問させていただきましたもののアレンジです。 昨日の質問では、 Sheet1のA1からF500...の値を Sheet2のA列に参照させたい。 Sheet1 Sheet2 A1 →A1 B1 →A2 C1 →A3 D1 →A4 E1 →A5 F1 →A6 A2 →A7 B2 →A8 C2 →A9 . . . で、 Sheet2のA1に =OFFSET(Sheet1!$A$1,(ROW()-1)/6,MOD(ROW()-1,6)) と入力して,下にコピー という完璧な回答をいただきました。 これを、違う表でアレンジしたかったのです。 Sheet1のG2からN500... の値を Sheet2のE7から下に表示したかったのです。 あれこれ試して =OFFSET(Sheet1!$G$2,(ROW()-7)/8,MOD(ROW()-7,8)) で、値の参照ができました。 この中の、 -7 の部分がわからないのです。 どなたか、わかりやすく教えていただけませんでしょうか? お忙しいとは思いますが、よろしくお願いします。

  • 同順の場合の順位について(2回目)

        A    B    C    D   E    F    G 1   社長   2    60(点) -   1(位)次長   75(点) 2   次長   1    75    -   2   社長   60 3   部長   2    60    -   2   部長   60  4   係長   4    55    -   4   係長   55 5    -    -     -     -    -     -    - 6    1 (位) エラー   75(点)-   -    -     - 7    2    エラー    60   -   -    -    - 8    2    エラー    60   -   -    -    - 9    4    エラー    55   -   -    -    - E1=RANK(LARGE($C$1:$C$4,ROW(A1)),$C$1:$C$4) G1=LARGE($C$1:$C$4,ROW(A1)) F1=IF(E1="","",INDEX($A$1:$A$4,LARGE(INDEX((C$1:C$4=G1)*ROW($A$1:$A$4),),COUNTIF($E$1:$E$4,E1)-COUNTIF($E$1:E1,E1)+1))) 上記なら、きちんと順位、順位の名前、点数が入ります。 A1=RANK(LARGE($C$1:$C$4,ROW(A1)),$C$1:$C$4) C1=LARGE($C$1:$C$4,ROW(A1)) B6、B7、B8にどういう関数が入りますか? 教えて頂けますか。 他にも何か良い方法がないでしょうか。 1位から100位までありますので、やり方が分からず焦ってます。

  • エクセルで条件を組み合わせて値を求める方法

    お知恵をお貸しください。 求めたいのは質量です。 A列に材質 鉄、アルミ、樹脂 B列に形状 ○、◎、□ C列~E列にそれぞれ寸法が入っています。(○の場合はC列が直径とD列が長さ) G1~G3に鉄(3.8)、アルミ(2.7)、樹脂(1.4)とそれぞれの密度が入力されています。 条件式により たとえば鉄の場合で形状が□の場合、C×D×E×$G$1として計算     アルミの場合で形状が○の場合 (C/2)^2×3.14×$G$2として計算 というようにA列の条件、B列の条件の組み合わせにより計算式を変えてそれぞれの質量をF列に出したいと思っています。 以下のように値は入力されています。 A1 鉄   B1 □  C1 10 D1 50 E1 5  A2 鉄   B2 ○  C2 16 D2 380 A3 アルミ   B3 ○  C3 12 D3 125 A4 樹脂  B4 □  C4 5  D4 8  E4 4 条件式を用て行ってみたのですが複雑になりうまくいきません。 どうかよろしくお願いします。

  • この式はなぜエラー #VALUE! になるのだろう?

    この式はなぜエラー #VALUE! になるのだろう?   A  B  C  D 1    92 95 96 2 3  60 67 99 4  99 13 74 5  92 58 96 6  93 59 10 7  81 51 10 8  81 95 98 9  88 45  6 範囲 A3:C9 に上図のデータがあると仮定します。そして、 1行目の各セルに次の値を返したい、というのが問題です。 B1: セル A3、A5、A7 の最大値 C1: セル B4、B6、B8 の最大値 D1: セル C5、C7、C9 の最大値 1行目の各セルに次の配列数式を入力すれば希望通りの値が得られます。 B1: {=MAX(OFFSET($A3,0,0,5,)*MOD(ROW(A1:A5),2))} C1: {=MAX(OFFSET($A3,1,1,5,)*MOD(ROW(B1:B5),2))} D1: {=MAX(OFFSET($A3,2,2,5,)*MOD(ROW(C1:C5),2))} OFFSET関数の引数 0、1、あるいは 2 のところは COLUMN関数で置き換えられるはずと考えて B1: {=MAX(OFFSET($A3,COLUMN(A1)-1,COLUMN(A1)-1,5,)*MOD(ROW(A1:A5),2))} C1: {=MAX(OFFSET($A3,COLUMN(B1)-1,COLUMN(B1)-1,5,)*MOD(ROW(B1:B5),2))} D1: {=MAX(OFFSET($A3,COLUMN(C1)-1,COLUMN(C1)-1,5,)*MOD(ROW(C1:C5),2))} としたところ、いずれもエラー #VALUE! が返ってきます。 なぜエラーになるのか理解できません。どなたか私にアドバイスをいただけませんか? 参考までに申し上げると、http://okwave.jp/qa/q5897615.html の質問の回答を考えているときに、上の問題に遭遇しました。

  • エクセルの条件範囲と合致したもの

    エクセルの条件範囲と合致したもの こんにちは。http://okwave.jp/qa/q5924759.htmlで質問していたのですが、 うまくいかないので、教えてください。 たとえば、同じシートで、 A1/B1/C1/D1・・・・・・←セル列 (スラッシュはセルだとします) A /1 /A /1 B /2 /B /2 D /3 /C E /4 /D /3 G /5 /E /4 I /6 /F / このように、列同士(A1の列とC1の列)が同じものがあった場合、A1の隣のセルであるB1のセルの数字をA4のセルに記載したい場合の数式を教えていただきたいです。D1に新たに追加されたものに関しては空白をしたいのです。 =IF(COUNTIF($A$1:$A$6,$C$1:$C$6)=0," ",IF(COUNTIF($A$1:$A$6,$C$1:$C$6)=1,B1)) この式を考えましたが、D1の列のDの部分の数字が"4"と記載されてしまい、本来なら"3"を 記載したいのですが、ずれてしまいます。 たぶん、条件の範囲のものとIFを合体させた数式になるのかなって思うのですが、 もし数式を教えていただければ幸いです。 何度も質問してすみません。。。よろしくお願いいたします。

  • エクセル 複数条件でのLOOKUP

    エクセルで、特定のキーで別表を参照してそこから値を表示するにはVLOOKUPを使用すると思いますが、複数条件でLOOKUPする事は可能でしょうか。 例えば、 シート1のA列とD列 シート2のB列とF列  2つの条件に合う(シート1A列=シート2B列 and シート1D列=シート2F列)レコードをシート2のG列からシート1のE列に表示したいと言う場合です。  シート1   A B C D E           1 01 ** ** 01       2 01 ** ** 02 うう       3 05 ** ** 01 ああ          ↑  シート2   A B C D E F G          1 ** 08 ** ** ** 01 いい       2 ** 01 ** ** ** 02 うう       3 ** 05 ** ** ** 01 ああ 判りにくい説明で申し訳ありませんが、よろしくお願いいたします。

  • エクセル2010 検索と抽出

    エクセル2010を 使っています。 以前教えていただいた、数式を改変して応用したいのですが、うまくいきません。 やりたいのは画像の処理で、 B83の値を E列から探しその関連セルであるF列、G列の値を、C列D列に抜き出すという作業です。 改変した数式は以下の様なもので、C83に入力後、オートフィルで使おうと思っていました。 詳しい方、教えていただけませんか? =IFERROR(INDEX(F83:F162,SMALL(IF(E83:E162=B83,ROW(E83:E162)),ROW(A1))),"") (配列数式) 3キー打鍵 よろしくお願い致します。

  • エクセルで、2つの条件に一致する値を返す方法 教えてください

    A B C D E F 1 日付 分数 2 Aさん Bさん Cさん Aさん Bさん Cさん 3 3/2 2/12 3/15 9 10 10 4 3/4 2/12 3/15 2 3 3 5 3/4 2/12 3/15 30 30 30 6 3/3 2/12 3/15 1 1 2 7 3/4 2/12 3/15 3 5 4 8 3/4 2/12 3/15 29 29 29 上記の表より 列A,B,Cは日付 列D,E,Fは分数です ・3行目のG列にD3:F3の範囲で最小値であり、A3:C3の範囲で最新の日付(最大値)である時の 日付を表示したい。 G3のセルを下に引っ張り各行ごとに値を表示したいです。 関数(式)を教えてください。

  • microsoft excel セルの色

    microsoft excel セルの色 http://okwave.jp/qa/q6412180.htmlの続きです。(もう補足できなくなってしまったので・・・) 同じようなことを、下の列(A14,B14,C14,D14,E14,F14)、下の列(A15,B15,C15,D15,E15,F15)、下の列、・・・・という風にやっていきたいのですが、一から条件付き書式の設定をしなければいけないのでしょうか。 他にいい方法はありませんか?教えてください。

専門家に質問してみよう