• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:A列とC列に数字、B列に文字列が下記の通り配置されています。A列の番号)

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

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

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

  • ベストアンサー
  • 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