• ベストアンサー

【Excel】 値で分ける式

こんにちは 添付データのように、 C列の値が1ならE列にB列の値を、2ならF列にB列の値を・・・ 並べる表を作りたいと思います。 EFG列の式を教えて下さい。 Excel2007です。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

E3=IF(ROW(A1)>COUNTIF($C$3:$C$15,RIGHT(E$2)),"",SMALL(INDEX(($C$3:$C$15<>RIGHT(E$2)*1)*10^5+$B$3:$B$15,),ROW(A1))) ★右と下にコピー

hee1
質問者

お礼

回答頂きありがとうございます。 シンプルな式に収まり、大変上手くいきました。 ありがとうざいました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

おはようございます。 色々方法はあるかと思いますが・・・ 一例です。 ↓の画像のE3セルに =IF(COUNTIF($C$3:$C$1000,COLUMN(A1))<ROW(A1),"",INDEX($B$3:$B$1000,SMALL(IF($C$3:$C$1000=COLUMN(A1),ROW($A$1:$A$998)),ROW(A1)))) という数式が入っています。 尚、配列数式になってしまいますので この画面からコピー&ペーストしただけではエラーになると思います。 E3セルに貼り付け後、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定すると 数式の前後に{ }マークが入り配列数式になります。 これを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 今回の質問の場合は列方向の分類が単純に1・2・3ということですので COLUMNを使っていますが、条件が変わると少し数式も変わってくると思います。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

hee1
質問者

お礼

ご回答頂きありがとうございます。 私の知識不足で、上手く扱うことができませんでした。 今回は、回答2の方法を利用してみたいと思います。 お時間を割いて回答頂き有難うございました。

全文を見る
すると、全ての回答が全文表示されます。
  • turuzou
  • ベストアンサー率33% (15/45)
回答No.1

例えば補助列を使用して、分類の文字をカウントして、重複のない文字列を作成させ、作成された文字列で検索してみては如何でしょう? 補助列としてD列を使用するとして D3へ =IF(B3="","",C3&"_"&COUNTIF(C$3:C3,C3)) を、オートフィルで必要分下へ (分類:1)F3へ =IF(COUNTIF(D$3:D$20,"1_"&ROW(A1)),INDEX(B$3:B$20,MATCH("1_"&ROW(A1),D$3:D$20,0)),"") を、オートフィルで必要分下へ (分類:2)G3へ =IF(COUNTIF(D$3:D$20,"2_"&ROW(A1)),INDEX(B$3:B$20,MATCH("2_"&ROW(A1),D$3:D$20,0)),"") を、オートフィルで必要分下へ (分類:3)H3へ =IF(COUNTIF(D$3:D$20,"3_"&ROW(A1)),INDEX(B$3:B$20,MATCH("3_"&ROW(A1),D$3:D$20,0)),"") を、オートフィルで必要分下へ

hee1
質問者

お礼

ご回答頂きありがとうございます。 私の知識不足で、上手く扱うことができませんでした。 今回は、回答2の方法を利用してみたいと思います。 お時間を割いて回答頂き有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  •  エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す

     エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す。  初めまして、よろしくお願いします。      A  B  C  D  E 1    赤  青  黄  緑  黒 2  3    4    1  3  2  0  9 5    9  1  3  4  3 ・    ・  ・  ・  ・  ・ ・    ・  ・  ・  ・  ・   112  4  6  1  9  6 113  7  7  5  8  1 114  6  9  1  3  7    115  7     2  5  0 116  8     0     0  という表があります。 各列の空白、もしくは0の入力されている後の値(A列では8、B列では9、C列では2、D列では5、E列では7)と最後尾の数字から2行目の値を(A列では6、B列では6、C列では5、D列では8、E列では6)を抜き出すことのできる関数式の方法がありましたら、教えていただきたく。よろしくお願いします。

  •  エクセル関数式により、ある値が二つの値の間にある条件の時に抜き出す方

     エクセル関数式により、ある値が二つの値の間にある条件の時に抜き出す方法。  初めまして。よろしくお願いします。  例) A B C D E F 1赤 2 5 1 2青 9 2 3 青 3黄 1 9 4 黄 4緑 3 4 2 5黒 8 4 9 6紺 2 5 4 紺 7橙 5 1 6 8 9  D列にある値がB列にある値とC列にある値の間に有る場合、A列に有る値をE列に抜き出す(例では2行目、3行目、6行目のDの値がBCの値の間に有るためにEのセルにAの値を表示される)関数式を教えていただきたく、よろしくお願いします。

  • 【Excel】行と列で値を検索したい

    こんにちは Sheet1に表があります。 Sheet2のA列と1行に値を入力したときに、 Sheet1の交わる値を表示したいのですが、 Sheet2のB2、C2、B3、C3の式を教えて下さい。 Excel2013です。 宜しくお願いいたします。

  • エクセル関数式により、列の最後尾から2行目の値からの最大値の求め方。

    エクセル関数式により、列の最後尾から2行目の値からの最大値の求め方。  初めまして、よろしくお願いします。      A  B  C  D  E 1    赤  青  黄  緑  黒 2  3    4    1  3  2  0  9 5    9  1  3  4  3 ・    ・  ・  ・  ・  ・ ・    ・  ・  ・  ・  ・   112  4  6  1  9  6 113  7  7  5  8  1 114  6  9  1  3  7    115  7     2  5  0 116  8     0     0  という表があります。 各列の空白、もしくは0の入力されている後の値(A列では8、B列では9、C列では2、D列では5、E列では7)を最後尾とし、そこから2行目の値(A列では6、B列では6、C列では5、D列では8、E列では6)からの列(A列ではA4の1まで、B列ではB4の3まで、C列ではC4の2まで、D列ではD4の0まで、E列ではE4の9まで)の間の値の最大値(A列で、見えている部分のみではA5の9になります)を抜き出すことのできる関数式の方法がありましたら、教えていただきたく。よろしくお願いします。

  • この式から値を求めたいのですが

    数式で、a=(b/c)*(d/f)*e^(-1/8*(f/d)^2) b,c,f,eは定数として 上記の式から、aが分かっている状態で、dの値を求めたいのですが可能でしょうか? それが無理であればaの変化量に対するdの増減する値が分かるだけでもいいのですが・・・ やはり無理なことですか? 回答の程よろしくお願いします

  • エクセルでの該当する条件に一致する値の抽出

    エクセル初心者で困っています。 どなたかお助け下さい。 以下の様な表があります。 A   B  C  D   E  F   G 1商品名 入荷数 消費1 消費2 性能1 性能2 性能3 2○○  2   1   2   △△  ◆◆  □□   3××  2   1   2   □□  △△  ◆◆ 4○○  2   1   2   ●●  □□  ◎◎ この表を基に、別シートを以下の様に作成して A   B  C  D   E  F   G 1性能 【◆◆】 2 3商品名 入荷数 消費1 消費2 性能1 性能2 性能3 4○○  2   1   2   △△  ◆◆  □□   5××  2   1   2   □□  △△  ◆◆ セルB1に性能名を入力して、入力した値と 基となるシートのEFGの列から一致する値があった場合 該当する行をそのまま表示するような式を作りたいのですが可能でしょうか? 分かりづらい質問で申し訳ありませんが ご回答いただけるとありがたいです。

  • [EXCEL]計算式について教えてください

    --F-+---G--+ 100 2000/1 150 2001/3 200 2002/10 300 2003/2 400 2004/2 500 2005/2 EXCELにて、上記のようにF列G列に値が入っている場合 たとえば、過去から2002/2までのF列の値を合計するには 「=SUMIF(G1:G6,"<2002/03/01",F1:F6)」で、250を求めることができます。 次に、2002/3~2003/3までのE列のデータの和(500)を求める場合の式を 「=SUMIF(G1:G6,"<2002/03/01",F1:F6)」と同じような式で 求める式を教えてください。

  • Excelの入力式について

    Excelの入力式について教えてください。 たとえば、A1セル~F1セルに数値が入っていて、G1セルA1+B1の値、H列にC1+D1の値 I列にE1+F1の値としたい場合、 G1セルに数式を入れてH列にコピーするとB1+C1になってしまいます。 上手くやる方法はないのでしょうか。 1列ずつわざわざ空白列を作るのは嫌ですし、たくさんあったら数式を打ち込むのも大変です。。。

  • 【Excel】該当データ表示方法について

    Excelの表で、(A)列にデータ名、(B)列にデータ値が入力されているとして、 1.(C)列に(B)列のデータ値の種類を昇順で表示、 2.(D)列に(C)列のデータ値を持つ(A)列の文字を表示、 3.(E)列に(D)列のデータ種類の数を表示 という3つの内容を実現したいのですが、(1つでも) ご存知の方、教えて下さい。よろしくお願いしますm(__)m 【イメージ】   | (A) (B) (C)  (D)   (E) ――――――――――――――――――― (1)| A 10 10 A、D、E   3 (2)| B 20 20 B、G    2 (3)| C 30 30 C、F    2 (4)| D 10 (5)| E 10 (6)| F 30 (7)| G 20

  • EXCELで入力された式の値を求めて自動計算

    A B C D E 1|データNO |数値1| 数値2| 数値3| 2| 1| 0.3 | 0.2 | 0.5 | 3| 2| 0.3 | 0.2 | 0.5 | 4| 3| 0.3 | 0.2 | 0.5 | -------------------------------------------- 10| 2/1| 数式1| 数式2 | 数式3 | 11| 3/2| 数式4| 数式5 | 数式6 | 12| 【求めたい値】 数式1には=C3/C2、数式2には=D3/D2、数式3には=E3/E2 数式4には=C4/C3、数式2には=D4/D3、数式3には=E4/E3 B列の2/1というのをそのまま式にしたいです。 2/1、3/2などは規則性はありません。その都度変わります。 C列の式ではC列の値を、D列の式ではD列の値を用います。 関数で=MATCH(LEFT(D34,SEARCH("/",D34,1)-1),D1:D23,0))と入れ、C3の値を求めようと思いましたが この時点でエラーになりました。=MATCH(2,D1:D23,0)だと大丈夫なのですが・・・。 関数でやるととても式が長くなりそうなので、VBAの方が良いかとも思っています。 どのようにコード、もしくは式を書けば希望の値が得られるでしょうか? VBAの場合は2/1などの数値を入れた時点で自動計算できれば嬉しいです。 よろしくお願いします。

専門家に質問してみよう