• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELでセルの結合にまつわるテクニック)

EXCELでセルの結合にまつわるテクニック

このQ&Aのポイント
  • セルの結合を解除した際、セル内の元テキストは結合していたセルの中で一番上のセルにのみ残りますが、その下のセルにも同じものを一括で反映させるための関数はどのようなものが適当でしょうか?
  • セルの結合をすると並び替えができなくなる場合、解決法はありますか?
  • オートフィルを使うと連続データになるときと同じデータが反映される場合がありますが、どういう場面で使い分けられているのかわかりません。

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

  • ベストアンサー
noname#52504
noname#52504
回答No.4

>1 セルの結合を解除した時点では、結合されていた全てのセルが選択されていて、 そのセル範囲の左上隅(テキストが残るセル)がアクティブになっていますよね。  そのまま状態で、数式バー(数式を入力する欄)をクリック ⇒ Ctrlを押しながらEnter  でいかがでしょう? >2 私もそれで随分苦労しました。 結合せずに全てのセルを埋めておいた方が、データとしては何かと取り回しが良いのですが、 プリントアウトを見るだけの人達はそれでは納得してくれませんからねぇ…。 代替の方法として[条件付書式を使い見た目だけ結合]してしまう方法があります。 具体的な方法はケースバイケースで一般的な説明は難しいのですが、 基本的には、自セルと上下隣のセルの値が一致するかどうかによって、 フォント色や罫線を制御します。 最もシンプルな例 1.B2セルからB20セルの外側に普通の罫線を引き、背景色白で塗り潰し、フォント色を白にする。 2.B2セルからB20セルについて、条件付書式を下記のように設定する  数式が:=B1<>B2 / 書式:上辺罫アリ,フォント色自動 3.適当なデータを入力し、並べ替えたりして挙動を確かめてください。 (※B1からではなくB2からであることに注意) 試してみるとお分かりのように、 ・連続データの区切に罫線が表示され、 ・連続データの最初のデータのみ黒字で表示されます。 つまり「結合して上詰め」と同じ見た目です。 そのまま並べ替えもできます。 もちろん、条件付書式でやる以上、太罫線・二重罫線は使えませんし、 「縦位置は中央揃えにしろ!」とか言われると困っちゃいますが。 いろいろ制約はあるものの、 「再左列の値の変化に応じて自動的に表全体の極細罫と通常罫を引きなおす」 といった使い方もできますから、覚えておいて損はないかもしれません。 >3 オートフィル機能は、細かく言うと相当に奇妙な挙動をするようで、 私も一口では説明しかねますし、このサイトでもかつて論議になっていましたが、 とりあえず解決済みのようなので省略します。 長乱文陳謝。

camerabook
質問者

お礼

色々ご説明ありがとうございました! 参考かつ励みになりました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

#2です。 >2については半ば諦めていましたが、最新のエクセルでは実装済みなのですね。 私の言ったことが誤解されたようです。 エクセルは作られてから、長らくセル結合はできませんでした。やっとエクセル97からできるようになり、表計算の機能の中で歴史が浅い機能です。ですからまだ、ユーザーのきめ細かいニーズを取り入れるまでに改善されていません、ということをいいたかった。 ーーー セル結合は (1)見た目はセルが結合される。 (2)値は最上且つ最左のセルに残す (3)それ以外のセルの値は空白にする。 (4)結合されたセルかは Sub test02() For i = 1 To 5 If Cells(i, "A").MergeCells = True Then MsgBox Cells(i, "A").Address End If Next i End Sub のようなのでわかる。 (5)基準セルは Sub test03() For i = 1 To 5 If Cells(i, "A").MergeCells = True Then MsgBox Cells(i, "A").MergeArea.Item(1).Address End If Next i End Sub のようなので判る。 ーーー セル結合を解いたというイベント(意味が判らなければWEB照会のこと) は無いので、コマンドボタンをシートに張り付け、そのクリックイベントに Private Sub CommandButton1_Click() Dim r As Range Dim cl As Range d = Range("a65536").End(xlUp).Row For i = 1 To d If Cells(i, "A").MergeCells = True Then Set r = Cells(i, "A").MergeArea x = Cells(i, "A").MergeArea.Item(1).Value Cells(i, "A").MergeCells = False For Each cl In r cl = x Next End If Next i End Sub を記述する(コピペする)と 質問の1の解決になりそう。 ただ十分なテストはできてません。 テスト例A1:B11 A8,A9はわざとデータを入れてない。 A列  B列 124 124 124 124 124 as as as as 3457 3457 3457 A列が初め上記B列のようであるとき、コマンドボタンをクリックすると上記A列のように自動でなります。 しかし上記のコードはVBAとして、初級の内容ではないので、今まで経験の無い場合難しいでしょう。

camerabook
質問者

お礼

誤解してしまったようで失礼いたしました。 ありがとうございました!

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.3

> 1.セルの結合を解除した際、セル内の元テキストは結合していた セルの中で一番上のセルにのみ残りますが、その下のセルにも同じものを すぐ下のセルを選択して「Crtl」キーを押しながら「D」キーを押してください。「編集」→「フィル」→「下方向へコピー」のショートカットキーです。 左隣のセルをコピーする場合は、「Ctrl+R」(右方向へコピー)です。 > 2.どうしても見栄えのためにセルの結合をしたいことがありますが そうすると並び替えができず不自由です。 残念ながら、その解決法を知りません。 > α.上記作業中に疑問に感じた余談ですが、オートフィルを使うと 連続データになるときと同じデータが反映される場合があり、 1) セル番地と「ツール」→「オプション」→「ユーザー設定リスト」に登録されているものは、無条件で連続データになります。 2) 基本的にオートフィルはコピー機能だと思います。 3) 連続データになり得る数値などでは、「Ctrl」キーを押しながら、オートフィルすると、連続データが表示されます。 4) スマートタグを使わないでも、右ボタンを使ってオートフィルするとボタンを離したと同時に「セルのコピー」「連続データ」などのショートカットメニューが表示され、選択したメニューが実行されます。

camerabook
質問者

お礼

ご丁寧なご回答、ありがとうございました。 αの質問について、再度確認してみたのですが 確かに標準はコピー機能のようなのですが セルの結合を解除した部分についてオートフィルすると 勝手に連続データになってしまいます。 なんだかよくわかりませんがもう少し自分でも調べてみようと思います。

camerabook
質問者

補足

(下記お礼の補足です) >セルの結合を解除した部分についてオートフィルすると 勝手に連続データになってしまいます。 no.1さんがご回答くださっていました。 ご迷惑おかけいたしました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

1.エクセルの仕様ではこれはできません。また質問者のニーズが一般的ともいえないと思います。 >関数はどのようなものが適当でしょうか? もともとできません。関数の問題にはできません。 VBAででも凝ったことをやらないとダメです。 2.セル結合は最近のエクセルバージョンでの追加機能で、意に満たない点はあるでしょうが、現状は仕様という他ありません。良い方法はありません。 セル結合せず、各行にデータを残し、真中の行以外の文字フォントを白色にするぐらいです。 α。 CTRLを押しつつドラッグする、などの場合でしょうか。 日付の場合はドラッグすると連続日付になります。 WEBで「エクセル オートフィル」で照会して読んでください。

camerabook
質問者

お礼

2については半ば諦めていましたが、最新のエクセルでは実装済みなのですね。 知りませんでした。 1も方法がないんですね・・。 現在やっている方法は、if関数を使用、該当の列とは他の列に、 「セルが空白であれば上のセルの数字を適用する」という簡単な関数を利用し それを繰り返し何回か別の列で行っていました。 最後にそれらを組み合わせるという方法です。 とても面倒だし、なんだか効率よく他に方法がありそうに 勝手に思っていました・・ ありがとうございました。

  • fukuchan7
  • ベストアンサー率51% (156/302)
回答No.1

1.の場合マクロでも使えばできると思いますが・・・仕方が無いです。 2.も仕方ないと思います・・ 3.については、整数で1・2・3・・・・のように連番を打つ場合は、そのままでは、同じデータが反映されますが、CTRL+ですると連番が打てます。 それ以外で、曜日、月数、干支、和月等はそのままで連番となります。 また、第1、1番のように数字がはいた文節の時はそのままで連番となります。同じパターンをコピーする場合はCTRL+で同じデータが反映されます。 言い換えれば・・・・ 数値がはいたセルをコピーする場合は、そのままでは、数値部分が連番となって反映されます。CTRL+ですると同じデータが反映されます。 以上です。

camerabook
質問者

お礼

お礼が前後して申し訳ございません。 現在、1についてはNO.2さんのお礼で書かせていただいた方法を とっていましたが、それをマクロで実行するのが良さそうですね? (勝手な想像) マクロは使ったことがありませんが、試してみようと思います。 3については現在扱っていたデータの数字が勝手に連番になって 困っていたのですが、「数値がはいたセル」ということで なんとなくわかった気がします。ありがとうございました。

関連するQ&A