A列とC列の関係に基づいてD列とE列を設定する方法

このQ&Aのポイント
  • A列とC列に数字と文字列が配置されており、親子関係がある場合、D列に親の文字列、E列に値を設定する方法を教えてください。
  • 親の番号を元に子の値を設定し、子の番号を元に孫の値を設定する方法を説明してください。
  • この関係を元に、D列に親の文字列、E列に子の値を設定する手順を教えてください。
回答を見る
  • ベストアンサー

A列とC列に数字、B列に文字列が下記の通り配置されています。A列の番号

A列とC列に数字、B列に文字列が下記の通り配置されています。A列の番号の小さいものが”親”、番号の大きいものが”子”の様な関係(1が親、3が子、6が孫の関係)にある配置が有る場合に、D列に自分の親の文字列、E列にC列の値を元に値(子供は親×子、孫は親×子×孫の関係)を設定したい場合、どの様な方法で対応すればよいでしょうか? A列   B列   C列   D列   E列 1   文字A   3          3 3   文字B   2   文字A   6 6   文字C   2   文字B   12 1   文字D   1          1 3   文字E   2   文字D   2 6   文字F   2   文字E   4 3   文字G   1   文字D   1 6   文字H   1   文字G   1

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

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

作業列としてC列の後にD列を設けます。答えはE列とF列に表示するとします。 1行目は項目名で2行目から下方にデータがあるとします。 D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(A2=1,COUNTIF(A$2:A2,1),D1&A2)) E2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A2="","",IF(LEN(D2)=1,"",IF(LEN(D2)=2,B1,IF(AND(LEN(D2)=3,RIGHT(D2,1)*1=6),B1,IF(AND(LEN(D2)*1=4,RIGHT(D2,1)*1=3),INDIRECT("B"&MATCH(LEFT(D2,1)*1,D:D,0)),IF(AND(LEN(D2)*1=5,RIGHT(D2,1)*1=6),B1,"")))))) F2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A2="","",IF(LEN(D2)=1,C2,IF(LEN(D2)=2,F1*C2,IF(AND(LEN(D2)=3,RIGHT(D2,1)*1=6),F1*C2,IF(AND(LEN(D2)*1=4,RIGHT(D2,1)*1=3),INDIRECT("C"&MATCH(LEFT(D2,1)*1,D:D,0))*C2,IF(AND(LEN(D2)*1=5,RIGHT(D2,1)*1=6),F1*C2,""))))))

3620313
質問者

お礼

ピラミッド風の構成ですか。ばっちりでした。大変助かりました。本当は、もっと階層が多いのですが、応用で対応してみます。ありがとうございました。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

無理やりやって見ました。 E1に =C1 D2に =IF(A2=MIN(A:A),"",INDEX($B$1:$B$8,MAX((A2>A$1:A1)*ROW(A$1:A1)))) E2に =IF(A2=MIN(A:A),C2,INDEX($E$1:$E$8,MAX((A2>A$1:A1)*ROW(A$1:A1)))*C2) D2とE2は配列式なので[Shift]+[Ctrl]+[Enter]で確定してください(式が{}で囲われます)。あとは、D2:E2を下にオートフィル

3620313
質問者

お礼

配列式は使ったことが無く、別途勉強したいと思います。絵入りのていねいな回答をありがとうございました。

関連するQ&A

  • 列A,列Bを参照して列Cにそれに対応する文字列を表示

    列A,列B,列C 4,8,A 4,9,B 4,10,B 4,11,C 4,12,C 4,13,D 3,8,E 3,9,F 3,10,F 3,11,G 3,12,G 3,13,H 2,8,I 2,9,J 2,10,J 2,11,K 2,12,K 2,13,L 1,8,M 1,9,N 1,10,N 1,11,O 1,12,O 1,13,P 列Aに1~4,列Bに4~20の値を入れ、 列Cに、計算式で上記のような文字列を表示させたいのですが、 if関数のネストが7つまでらしく8つ以上が出来ません。 何か方法がありましたらお願いします。 =IF(AND(A2=4,B2<=08),"A" ,IF(AND(A2=4,B2<=10),"B" ,IF(AND(A2=4,B2<=12),"C" ,IF(AND(A2=4,B2>=13),"D" ,IF(AND(A2=3,B2<=08),"E" ,IF(AND(A2=3,B2<=10),"F" ,IF(AND(A2=3,B2<=12),"G" ,IF(AND(A2=3,B2>=13),"H"))))))))

  • エクセルでA列-B列=C列 の抽出方法について

    エクセルの初歩的な質問になってしまうかもしれませんが A列の値からB列の値で重複する値を削除して C列を作る方法を教えてください。 A列 a b c d B列 c d から 結果 C列 a b のような結果が得られる処理方法を お願い致します。

  • エクセルで複数の列から複数の文字列(数字)を選びたいです。

    エクセルで複数の列から複数の文字列(数字)を選びたいです。 A   B   C   D   E   F   G   H 1   12   1   4   5   8   6 2   36  7   2   5   6 3   55  3   4   88  1  3  8 5   87 上記のような表があったとき、C列からG列のいずれかに1、3、8のどれかが 含まれるとき、H列にB列の数字を入れたいのですが、どのようにすれば できるのでしょうか? この場合、A列の1,3,4段にそれぞれ12、55、88と入れたいということです。 よろしくおねがいいたします。

  • エクセルで A列に商品名 B列に商品番号 C列に管理者 が入っています

    エクセルで A列に商品名 B列に商品番号 C列に管理者 が入っています。 A B C あ 001 佐藤 い 002 鈴木 う 003 田中 え 004 伊藤 お 005 三木 以下600行くらい続いています。 商品名は重複していません。 D列を空列にしE列に商品名をいくつか並べたときに、 F列とG列に商品番号と管理者を表示させたいのですが、 どの関数を使えばいいのかよくわかりません。 環境はエクセル2003です。

  • エクセル A1の値と同じ値の入ったB列のC列の計

    A1=10 D1=37 B C 10 15 11 10 10 12 12 1 10 10 A1と同じ値をB列から探し其の行のC列の値の合計をD1に表示したいのです ご教授ください

  • エクセルに関しての質問です。A列とB列に任意の文字列があり

    A列にもB列にもその文字がある場合、C列にその文字以外の文字を表示させ、B列にしかない文字をD列に表示させる。 (例) A B C D 1 1 3 5 2 2 3 4 4 5 というものは出来ますか?関数でも、マクロでもいいので、とにかく、その文字を摘出したいのです。どなたか違う方法でも良いので、教えて頂きたいです。

  • EXCEL A列の値を受けてB列に出力するロジック

    A列の値を受けて、B列に出力するVBAを組みたいと考えています。 ロジックが思いつきませんので、お助け下さい。 A列に一の位が必ず1の数字が入っています。 それをB列に1~10まで展開します。 それが終われば、A列の次の値をB列に入力、 同じように、B列に1~10まで展開します。 それをA列の最後の値まで繰り返します。 最終的にはA列に入力されている個数の10倍の個数がB列に出力されることになります、 以上の処理です。 A   B    C   D   E   F   G 1   31   31 2   61   32 3   81   33 4   11   34 5   ・   35 6   ・   36 7   ・   37 8   ・   38 9   ・   39 10   ・   40 11   ・   61 12   ・   62 13   ・   63 A列の値の個数は多いので、できるだけ早く動作するような処理方法がわかればと思います。 よろしくお願いします。

  • A列にあったものには1、C列にあったものには2

    シート1の内容をVBAをつかってシート2のようにしたいです。 つまり、シート1の2行目以降のデータをシート2のB列につなげて、 A列には シート1の1行目に記載している番号をふっていきます。 もともとA列にあったものには1、C列にあったものには2、E列にあったものには3と振りたいのですが、どのようにマクロを書けばいいでしょうか? [Sheet1]   A  B  C  D  E 1 1  2  3 2 aa aaa aaaa 3 bb bbb bbbb 4 cc cccc 5  dddd ----------------------------- [Sheet2] A B 1 1 aa 2 1 bb 3 1 cc 4 2 aaa 5 2 bbb 6 3 aaaa 7 3 bbbb 8 3 cccc 9 3 dddd

  • B列とC列のいずれかに文字が入力されています。

    B列とC列のいずれかに文字が入力されています。 B列とC列同時に入力されていることはなく、B列とC列とも空白のこともあります。 この時、A列にB列、C列の文字をコピーするためにはA列にどのような関数を用いればよいですか。 A  B  C あ    あ い い           う    う といった具合です。 

  • エクセルの列番号(上のA,B,C,D…)が数字になってしまいました。

    エクセルの列番号(上のA,B,C,D…)が数字になってしまいました。 気が付いたら、縦横ともに列番号、行番号ともに数字になっています。 どうしたら列番号が元のアルファベッドに戻るのでしょうか? セル参照とかする時非常にわかりずらいのですが…… 特にどこかの設定を触ったとかってないのですが、勝手に変わっちゃったってこともないと思うんですけど…… ウィンドウズVisutaのエクセル2007です。 どなたかわかるかたいらっっしゃいますか?

専門家に質問してみよう