[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定条件化の列の削除』(AGI)
このサイトで参考させて頂いたり
質問させて頂いてお世話になっております。
マクロで料金を転記させる方法に取り組んでおり
他の方の力を借りて、なんとか転記させることは出来たのですが
転記した後の料金表で、加工する必要があり、
その加工する条件が色々あって、マクロをどのように組めばいいのか
行き詰ってしまったので、お力を貸していただきたく
投稿させて頂きます。
料金表のシートがあって
項目の見出しがあってその項目の数は変動して
IDも記載されますが、そのIDの数も変動しており
行も列も変動します。
7行目からIDや料金が始めるのは変動しません。
それぞれ、項目ごとに料金が記載されて
最初に対象外の項目の料金が7行目以降から全て0円なら列ごと削除をし
次に、まとめの項目を見て7行目から全て0円の項目があった場合
同じ項目の列を削除する
概要図も書いたのですが、正直伝わりにくい部分がかなりあると思うのと
投稿フォームのスペースの関係上、書ききれていない部分があるので
参考資料のエクセルをUPローダーに用意しました。
http://www.dotup.org/uploda/www.dotup.org736074.xlsx.html
PASS:12345678
最初にIDの列の長さをfor文で取得して
まとめの列を比較させれば作れると思ったのですが、
行も列も変動するので構想すら行き詰ってる状態になってしまいました。
色々と構成図の関係で伝わりにくい部分や分かりにくい部分があるので
不明な点やどういう構成かの質問については、適宜、答えさせていただきます。
宜しくお願い致します
1
2
3
4
5 項 I ● 分野別 ● ●対象外● ●まとめ●
6 番 D AA BB 小合計 AA BB 小合計 AA BB
7 1 000-1 \100 \ 0 \100 \0 \0 \0 \100 \0
8 2 000-2 \200 \ 0 \200 \0 \0 \0 \200 \0
9 3 000-3 \100 \ 0 \100 \0 \0 \0 \100 \0
マクロ実行
・最初に対象外のAAとBBの列の額がすべて\0なら列ごと削除
・次に、まとめの項目(今回の場合、AA、BB)を見て
全部\0の場合、列ごと削除しつつ、分野別の全部\0の列も削除
(今回の場合、まとめのBBの金額が全て\0なので、まとめの項目BBの列ごと削除して
分野別の項目BBの列も削除)
実行後
1
2
3
4
5 項 I ● 分野別 ● ●まとめ●
6 番 D AA 小合計 AA
7 1 000-1 \100 \100 \200
8 2 000-2 \200 \200
9 3 000-3 \100 \100 \100
< 使用 Excel:Excel2010、使用 OS:Windows7 >
まず「削除」ありきで考えるのではなく、
手段としての「削除」はひとまず置いて、
全体として何をされたいかをまず書いてみてはどうですか?
つまり、全体としてのやりたいことのなかで、
本当に削除は必要なのですか?
非表示の利用とか検討されましたか?
(γ) 2016/02/12(金) 22:05
全体の中で、削除をやりたいことは間違いありません。
非表示については、項目を消して整理するという形で使用するためです。
全体でやりたいことは
対象外の項目の列の項目が0円なら列ごと削除
まとめの項目の中で全ての金額が0円なら列ごと削除
更に、同じ項目の列も削除という形です。
まとめると、こんな形ですが
今一、伝わりにくいかもしれません。
コメントありがとうございます。
(AGI) 2016/02/12(金) 22:17
ざっと拝見しましたが、結合セルがあるので、結構、面倒かもしれませんね。 回答ではなく、所感で恐縮です。
・この種のデータは、単純なレイアウトでベタベタと、かつシンプルに持っておいて、見た目を向上させなければいけない場合に そのシンプルなデータを元に編集を行うのが得策なのかなと思います。 このレイアウト以外のまとめかたがほしい場合も、元データから、いかようにも編集できますので。
・なによりも、強く感じたのは、なんらかの処理で、このような「実行前結果」が作られてしまった。 で、それを、なんとかして、実行後結果のような形に補正したい。 さらには、その補正で考えられる不具合(エラー表示等)は、また、別途の処理で三次補正を行う。 このような方法は、感心しません。 そもそもが、【実行前結果】をつくっている部分に手を入れて、最初から【実行後結果】が作成されるように すべきではないでしょうか?
(β) 2016/02/12(金) 22:36
質問を変えましょう。
(Q1) 削除するだけですか?今後挿入することはないのですか?
(Q2) その表はどうやって作成したのですか?
0円のものは最初から作らなければいいんじゃないですか?
# ちまちま書いていたら、βさんからポイントをついたコメントが。
# そう、そういうことを言いたかったのね。
(γ) 2016/02/12(金) 22:40
そもそもが、【実行前結果】をつくっている部分に手を入れて、 最初から【実行後結果】が作成されるようにすべきではないでしょうか?
転記させる時点で判定させるようにする方法があればよかったのですが
文言が相当あるため、「実行前結果」が作成されてから
判定させたほうがいいと判断した次第です。
大元の転記させる時点で判定させる視点はありませんでした。
アドバイスありがとうございます。
γ様
(Q1) 削除するだけですか?今後挿入することはないのですか?
A1:質問にある通り、削除するだけで挿入することはありません。
(Q2) その表はどうやって作成したのですか?
A2:別のシートから縦書きの料金表から突合させて転記しています。 (β様の返信で記載してる通り私が作ったマクロではありません)
A2:0円のものは最初から作らなければいいんじゃないですか?
全て0円であるかどうかを転記後に判定させる事の観点しかなかったので
事前に判定させて転記させなければいいというのもおっしゃる通りです。
ですが、その判定させる事は返信頂いて気付きました。
お二人ともアドバイスありがとうございます。
元データから判定させる観点はまったくなかったので
その観点からも考えてみます。
(AGI) 2016/02/12(金) 23:00
(γ) 2016/02/12(金) 23:06
http://www.dotup.org/uploda/www.dotup.org736756.xlsx.html
PASS:12345678
コードを書いた方は、職場の方ですが
その方は退職しているので、こちらの掲示板で相談させて頂きました。
(AGI) 2016/02/13(土) 08:48
Password が違っているようで閲覧できません。 また、その方が書いたコードも拝見できれば、分析して対応案をアップされる回答者もでてくるかもしれません。 (今のところ、βは、その気力が出てくるかどうかは、なんともいえません・・・)
(β) 2016/02/13(土) 14:35
色々とアドバイスありがとうございます。
まずは結果出来上がったものをどうするかというより、
先に転記する際に判定させる条件を考えていきたいと思います。
色々とお手数をかけて申し訳ございません
(AGI) 2016/02/13(土) 21:29
>>まずは結果出来上がったものをどうするかというより、 >>先に転記する際に判定させる条件を考えていきたいと思います。
それがよろしいかと思います。 元データ拝見しましたが、私がコメントした、淡々としたデータになっているので、これを元に 実行後レイアウトに落とし込むのは、そんなに困難ではないと思われますね。
項目単位にすべて0ではない行の有無を調べ、すべて0の行による項目は、削除し、最初からなかったことにするような 加工方法が簡単かもしれません。
(β) 2016/02/13(土) 21:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.