- ベストアンサー
【excel】複数ある同じ値を、自動でひとつにまとめたい
Yoshaの回答
この際マクロに挑戦してみては如何ですか? 「開発」タブを開き、「Visual Basic」 をクリックします。 「Microsoft Bisual Basic - Book1」 という表題で 「Visual Basic Editor」 が開きます。 「挿入」 をクリックし出てきた、ドロップダウンリスト内の 「標準モジュール(M)」 をクリックすると、文字が書けるところが現れます。 ここに以下の文 (コードと言います) をコピー&ペスト (コピペ) してください。 Sub test() Dim r As Long, ro As Long, re As Long, rSt As Long Dim c As Integer, co As Integer, ce As Integer Dim n As Integer, no As Integer, n1 As Integer ro = Selection.Row co = Selection.Column re = Cells(ro, co).End(xlDown).Row ce = Cells(ro, co).End(xlToRight).Column For c = co To ce For r = ro To re rSt = r no = Cells(rSt, c).Value Do n = Cells(r, c).Value If no <> n Or n = 0 Then With Range(Cells(rSt, c), Cells(r - 1, c)) .Select n1 = Cells(rSt, c).Value .ClearContents .Merge .Value = n1 r = r - 1 Exit Do End With rSt = r End If r = r + 1 Loop Next Next End Sub コピペが済みましたら、テストをするために、不要なシートに処理したいデータをコピーして、データの左上のセルを選択してください。 次に、先程コードをコピペした、すぐ上のマークが並んでいる中央付近の右向き三角のボタンをクリックしてください。 ほぼ一瞬のうちに、全ての作業が完了するはずです。 マクロの威力です。 質問の趣意から、背景色、罫線、各列のデータの開始位置と終了位置などは同じであり、予め処理済みであるものとしています。 いろいろなケースでテストをしてOKであることを確認した後に実際に使用しましょう。 不明な場合、こちらでコメントするか、VBA の分かる方に質問してください。 分かり易いコードで書きましたので少し勉強すると分かるようになると思います。 VBA を使い始めるとエクセルが面白く、楽しくなってきますよ。 頑張ってください。
関連するQ&A
- Microsoft Office Excel 2003
Microsoft Office Excel 2003で縦にならんだ数値すべてに同じ数をプラスしたいのですがどうすればよいですか?
- ベストアンサー
- Windows XP
- Excel2010で3つの値のうち最も少ない値
Excel2010で3つの値のうち最も少ない値を返して、もしその値が空白だったらゼロと認識する。としたいのですが、 どのような関数にしたらよいのでしょうか? どなたかおしえてください。 例) A1:3 A2:5 A3:(空白) この3つのセルのうち最も少ない数を返す。 =MIN(A1,A2,A3) だと、値3が返ってしまいます。空白もゼロと認識して値0を返したいのです。 ですが、この3つのセル以外に空白セルを残すため、Excel昨日の「空白にゼロ値を表示する」を使いたくありません。 どうぞよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excel2007と2010の違いについて
Excel2007でアプリケーションを作っていますが、それを2010で実行すると結果が上手くいく時と上手くいかない場合があります。 もちろん実行条件は同じです。 プログラムの内容は、行の挿入、2行の結合、値の代入、並び替え等、普段シートで手作業で行っていることをマクロにしたものがほとんどです。 2007のアプリケーションを2010で実行した場合の不具合等はあるのでしょうか? 以下は詳細です。 1.2行が結合された行をコピー、挿入する。 2.ClearContentsで、値をクリアする。 3.挿入したセルに値を代入する。 4.並び替えする。 上記の処理をした場合、3のセルに値が入っておらず、結合を解除すると、2でクリアしたはずの 値が残っていたり、4の並び替えが条件通りにソートされていない等の不具合が起きます。
- 締切済み
- Visual Basic
- Excel VBAで結合セルに連番を振っていくには?
Microsoft Excel 2003での質問です。 表を作成しました。 結合セルが複数ある1列に(セル数はまちまち・複数の列には非結合)、連番を振っていく作業をしています。 これをVBAを使って自動化したいのです。 列に連番がすでに入力されている最終行の下のセル(つまりこれから連番が入る空白セル)を選択、 範囲指定し(セル数はまちまちなのでこれは手作業)、 セルを結合させるまではできたのですが、 この結合させたセルに、[(一つ上の結合セル)+(1)]の値を入力させるにはどうプログラムしたらよいでしょうか? わかりにくい説明で恐縮ですが、どなたかご教示ください。
- ベストアンサー
- オフィス系ソフト
- EXCEL2003でこの間までできた値貼り付けが急にできなくなりました
EXCEL2000で作成した表をEXCEL2003で使用しています。 あるシートで入力したデータを、保存用の別のシートに行単位で選択し、値貼り付けをしていました。 今までは問題なくできていた作業が、今日突然できなくなってしまいました。 エラーは「同じサイズの結合セルが必要」と出ます。 何が原因かお分かりになる方いらっしゃいますでしょうか。 元のシートは表示させていない列を含みますが、 貼り付け先のシートは全て可視状態で結合セルはありません。 元のシートには1ヶ所結合した部分がありましたが、 貼り付け先のシートは結合した部分はありません。 今回のエラーが出たため、元のシートの結合を解いて、 該当行のどこにも結合セルがない状態にしましたが、 同じエラーが出ます。 現在、 元のシートのデータをまずそのまま貼り付け、 その後同じデータを値貼り付けで上書きし、 上の行の書式コピーをするという方法に切替えて対処していますが、 作業が多くなるので、困っています。 どうぞよろしくお願い申し上げます。
- 締切済み
- オフィス系ソフト
- Excel(エクセル)同じ値を重複なく抜き出す
4つのセルに数値が入っていて、 横のセルに値を重複なく、1セルに1つずつ抜き出したいです。 作業列は右側どこまで使っても構いません。 UNIQUE関数は利用できません。Excel2013 よろしくお願いします。 6_7_7_3 →6_7_3 7_7_8_7 →7_8 4_7_9_4 →4_7_9
- ベストアンサー
- オフィス系ソフト
- OFFICE 365 Excel - 数式の値
OFFICE 365 Excel にお於いて、数式の値を表示させていますが、値の上限値を設定したいのですが出来ません。 Excelシート セルE3には他複数セルの合計値(整数)が表示されています。 同じくExcelシート セルB17には、数式「=(E3*300)」によって計算値が表示されていますが、この計算値の上限値を27000以下に設定するには、どうすれば良いのでしょうか教えて頂ければ幸いです。 データー→データツール→データの入力規則→設定...では出来ないのは承知しています。
- ベストアンサー
- Excel(エクセル)
- OfficeExcel2003:マクロを用いた特定行のセル毎の条件判定
Microsoft Office Excel 2003を用いて簡単なデータ管理表を作っています。 その中で特定列の各セルに格納された値が一定の条件を満たした際に そのセルの設定を変更するマクロを実装したいと考えています。 ちょっと分かりづらいかもしれないので具体例を挙げます。 例えばB列の各セルに数値データが格納されているとします。 その数値データが100以上ならばそのセルの背景色を青に、-1以下ならば背景色を赤に変更する。 といった感じです。 全データ数(行数)は不定で必要があれば増やせるようにしたいです。 1データは複数行にまたがっており、判定する項目(列)はセルの結合を行っています。 また、一定行間隔で項目の見出しを記した行が挿入されています。 そのせいか、自分なりに組んでみたマクロはセルの走査がうまくいかず、オーバーフロウを起こしてしまいました。 結合セルでも問題なくデータ入力されている最後のセルまで順に検索していく方法はありますか? どなたか御存知の方いらっしゃいましたら、ご教授お願いします。 また、ネットで調べるのにも少し限界があるようなので 逆引き事典的に扱える、良いVBAの書籍がありましたら教えて頂けるとありがたいです。
- ベストアンサー
- オフィス系ソフト
- 同じ値のはいったセルを検索
7桁の数字の乱数が何千とあるのですが、 同じ数値のセルを検索することはできますか? ソートをかけて探すのは大変で、 よい方法ありましたらご教授ください。 OFFICE 2000です。
- ベストアンサー
- オフィス系ソフト
- Excel2007の一括セル結合で、
Excel2007の一括セル結合で、指定した範囲内の行を 一括でそれぞれの行だけをセル結合する方法を教えてください。 添付図の例では、A1~F3を範囲指定して 一括でセル結合して、18セルを3セルにする方法です。
- ベストアンサー
- Excel(エクセル)
お礼
御礼が遅くなりまして、申し訳ありませんでした。 とにかくビックリしました! まさか、一発でできる方法があった……というか マクロを組んでくださるなんて本当になんとお礼を言ったらいいやら。 No.1さんの回答でも十分ありがたく満足しておりましたが、 マクロの威力に恐れ入りました。 ところで、マクロに挑戦……ううっ。 そうですよね、甘えちゃいけませんね(汗) たしかにこういうことができるようになってこそ、「excelを使っている!!」と言えますね。 しかもわかりやすいコードで書いていただいているとのこと。感涙です。 ともかく本当に助かりました。ありがとうございました!