
Excelのあるシート「シート1」に親子関係が記されたデータがあります。
列の親には親の名前が、子にはカンマ区切りで所属する子の名前が記されています。
<シート1>
親 子
A1 A2,B1,B2,B3
B1 C5
A2 C1,C2,C4
B2
C1
C2 C3
C4
B3 D1,D3
D1
D2
D3 D2
これを下のシート2のようなツリー構造で親子関係を表現したいです。
1、2、3、4はそれぞれ列で、セルの行と列を変更することで、
ツリーの親子構造を表現します。
<シート2>
1 2 3 4
A1
A2
C1
C2
C3
C4
B1
C5
B2
B3
D1
D3
D2
条件は以下のようになります。
a.シート1の記述順は順不同だが、一番上の行は必ず、一番上の親が来る。
b.一番上の行の親以外は、必ず親を持ちます。逆を言えば、「A1」以外には必ず親が存在し、親をたどると必ず「A1」になります。
そんなに難しくないかとは思うんですが、循環関数を作って考えるのが、今の眠い頭でできなくて…。

No.4ベストアンサー
- 回答日時:
#3です。
私がやるとした場合の方法。
・”A1”しか親がないのですから、”親があって子のない”データは無視する。
・親をキーに、子を項目としてDictionaryオブジェクトに放り込む。
⇒データ書き出しをH列~とする。
・まず最初”A1”をセルH1に代入する。
・キー”A1”の項目をセルI2以下に書き出す。
・次にI列を上から取得し、その値のキーがDictionaryにあるかチェックし、
値があればその項目をJ列に書き出す。
(この場合I列は上詰めされているので、項目分の行を挿入する。)
・以下J列に対して同じ作業でK列・・・と行挿入~書き出しを行なう。
と言った感じになるのかなと思いましたが、コーティングはしてません。
あくまで私見で可能かどうかはわかりません。
No.3
- 回答日時:
#1&2です。
一番ネックと感じるのは、
>D2
>D3 D2
ここでしょうか。
データを順に見ていくとD2は始め”親”と判断されるでしょう。
ところが次ではD3の”子”となります。
このように”親”であったはずのデータが、後から”子”であったとなった場合に、
それまでのデータ配置を入替えるためのコーティングって、結構複雑な感じがしてます。
なので”作っている”段階であれば、その事に興味がありましたのでコードの提示を求めたわけです。
No.2
- 回答日時:
#1です。
>循環関数を作って考えるのが、
この事が重要だと認識しての回答です。
すなわち、どのような判断をしてどのようにコーティングをしてみたが、
結果どんな感じに出来たのか、或いは出来なかったのか。
その事をやり取りする場であると思います。
そうでなければ「作成依頼」になりますので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルで階層図を作る方法
その他(Microsoft Office)
-
VBAにてツリー階層表示ツールの作成
Visual Basic(VBA)
-
部品表
Visual Basic(VBA)
-
4
エクセル表内で、ツリー表示させたい
Excel(エクセル)
-
5
ツリー構造をRDBで表現するには?
その他(データベース)
-
6
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
7
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
8
excel vbaで木構造データを扱いたい
Visual Basic(VBA)
-
9
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
12
VBA、UserFormを前面に出力してから処理後にももう一度前面に出したい
Visual Basic(VBA)
-
13
【VB】セルが空になるまで処理を繰り返したい
Visual Basic(VBA)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
16
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
17
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
18
エクセルのマクロで指定条件一致行をグループ化したい
その他(Microsoft Office)
-
19
HTMLからフォルダを開きたい
HTML・CSS
-
20
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
親にバレずにアプリをインスト...
-
5
6対4の計算を教えて下さい。
-
6
家を建てる際に家の外構は親が...
-
7
auかんたん経済で親に内緒で購...
-
8
親に見捨てられました。
-
9
付き合ってないのに親に会いた...
-
10
「親の元」は間違い・・?
-
11
保証人になってもらう時のお礼...
-
12
多分親にスマホ隠されました
-
13
家に鍵を忘れました・・
-
14
部活やめたんですけど暇なとき...
-
15
次の宋学士文集の漢文なんです...
-
16
Twitterで知り合った方と会う約...
-
17
親に内緒でアプリを取りたいの...
-
18
ExcelのVBAでデータをツリー構...
-
19
親バレせずにYouTuber
-
20
親元を離れて暮らす大学生、電...
おすすめ情報
公式facebook
公式twitter