
他のテーブルから取得したデータで満たされたテーブルがあります。テーブルのセルの数式は非常に単純です (別のワークシートのセルへの参照)。
私のテーブルには、「タイトル」行 (この場合は行 57 と 64) があり、この行には 1 つのテキスト値のみが含まれています。これらの行の隣接するセルは常に空になるため、隣接するセルにオーバーフローさせたいと思います。
テーブル内の値が手動で入力された場合、問題は発生せず、セルは下の画像のように希望どおりに表示されます。
行 57 の最初のセルの値は、隣接するセルに数式が含まれているためオーバーフローしません (数式は基本的に "=OtherCell" ですが、OtherCell には値 (具体的には "") が含まれていません)。
データはデータベースから自動的に抽出されるため、「タイトル」行の位置は変化し、テーブル内の多くの行に出現することに注意することが重要です。
どうすればこれを実現できるでしょうか...
- 手動介入なしで(これらは自動レポートなので、次に生成されるレポートに誤りがあるため、数式を削除することはできません)
- VBA は使用できますが、手動介入と同じ理由で、テーブルを「不可逆的」な方法 (次にシートが計算されたときにデータがエラーになるような方法) で変更することはできません。
私は Excel 2013 を使用していますが、この質問は Excel 2007 以降のバージョンにも当てはまると思います。
答え1
簡単に答えると、それはできません。
長い答えは、本当に空のセルにのみ、左隣のセルのテキストがはみ出してそのセルに表示されるということです。
Excel はまさにこのように動作します。
特に除外する手動による介入、数式の削除、VBA など、デフォルトを受け入れる以外にできることは何もありません。デフォルトとは、右側のセルの数式によって、テキストが右側に溢れるのを防ぐというものです。
伝言者を撃たないでください。
答え2
本当にそうしたいのであれば、それを処理する左端のセルに複雑な数式を作成できます。これにより、表のデータが以降の計算で直接使用されることはなくなり、2 列目と 3 列目は実際には使用されないため、ユーザーの邪魔になる可能性があります。ただし、データと完全なエントリを最初の列に表示することはできます。それらを削除すれば、ユーザーにとってより受け入れやすいものになるかもしれません。
最初の列には明示的に数値エントリとアルファベット エントリがありますが、英数字エントリはありません。そのため、最初にISTEXT(). If NOT, then one has the current formula for that column AND the formulas for the second and third columns. One would need to
TEXT() でそれをテストし、それぞれをラップして、必要に応じて外観に合わせてスペースを追加しますが、かなりの作業が必要になりますが、外観は実現できます。
テストが成功した場合、私の理解では、2 列目と 3 列目には何も含まれていないため、セルには現在あるテキスト結果がそのまま表示されます。
1 列目と 2 列目の間に指定された数のスペースを使用し、2 列目と 3 列目の間に異なる数のスペースを使用した場合、それはテーブルからデータを抽出して他の場所で使用するための信頼できる基準になる可能性があります。
ただし、他の場所で使用する場合は、テーブル内の何かを検索するのではなく、ソース データで第 1 レベルの検索を実行して、このテーブルを直接入力するために使用した数式を使用することもできます。つまり、既に検索された資料の検索ではなく、直接検索します。ある意味では、少し「クリーン」です。
答え3
VBA を使用すると、何も生成しない数式を含むセルを無効にすることができます。
Private Sub CommandButton21_Click()
For Each c In Worksheets("yourworksheet").Range("yourrange")
If c.Text = "" Then c.Select: Selection.ClearContents
Next
End Sub
したがって、隣接するセルは空のセルを超えて拡張できます。
答え4
希望どおりの外観にするには、ソース データを再構築する必要があります。このようなセクション ヘッダーを使用するのではなく、セクション ヘッダーの値を取得して、そのセクションに関連付けられたすべての行の新しい列に配置します。次のようになります。
ソース データをこのようにネイティブにレイアウトできない場合は、VLOOKUP や INDEX/MATCH を創造的に使用して、ソース データで列 B が空の行を見つけることで、自分でレイアウトすることができます。
次に、このデータを取得して、それを要約したピボットテーブルを作成し、最初に希望したレイアウトに操作することができます。以下はそのモックアップです (ページ、Rev、および説明フィールドで表形式レイアウトを使用するように設定し、すべての合計をオフにし、展開/折りたたみボタンの表示をオフにしました)。