web-dev-qa-db-ja.com

Excel-数式を含む隣接するセルにセルのテキストをオーバーフローさせる

他のテーブルからのデータで満たされたテーブルがあります。私のテーブルのセルの数式は非常に単純です(別のワークシートのセルへの参照)。

Table example

私のテーブルには、隣接するセルにオーバーフローさせたいテキスト値を1つだけ含む「タイトル」行(この場合は行57と64)があります。これらの行の隣接するセルは常に空になるためです。

表の値を手動で入力した場合、問題はなく、セルは下の画像のように希望どおりに表示されます。

Table has it would be if data was entered manually and has I want it

行57の最初のセルの値は、隣接するセルに数式が含まれているためオーバーフローしません(数式は基本的に「= OtherCell」であり、OtherCellには値(より具体的には「」の値)が含まれていません)。

データはデータベースで自動的に抽出されるため、「タイトル」行の位置が変更され、テーブル内の多くの行で発生することに注意することが重要です。

どうすればこれを達成できますか...

  • 手動による介入を使用しない場合(これらは自動化されたレポートであり、次に生成されるレポートが誤っているため、数式を削除できません)
  • VBAは使用できますが、手動による介入と同じ理由で、テーブルを「不可逆的な」方法で変更する方法(次にシートが計算されるときにデータが誤っているようにする方法)では使用できません。

私はExcel2013を使用していますが、この質問は2007以降のバージョンのExcelに当てはまると思います。

簡単な答えは次のとおりです。できません。

長い答えは、真に空のセルだけが、左の次のセルからのテキストをこぼしてそのセルに表示できるようにするということです。

これがExcelの仕組みです。

具体的にはexclude手動による介入、数式の削除、およびVBAの場合、デフォルトを受け入れる以外に何も残っていません。つまり、右側のセルの数式によって、テキストがにこぼれるのを防ぐことができます。権利。

使者を撃ってはいけません。

2
teylyn

本当にやりたいのであれば、それを処理する必要のある左端のセルに対して複雑な数式を作成することができます。テーブルのデータを以降の計算で直接使用することはできず、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レベルの検索を実行することもできます。したがって、すでに検索された資料を検索するのではなく、直接検索します。ある意味で少し「クリーン」です。

0
Jeorje

VBAを使用すると、何も生成しない数式を含むセルを無効にすることができます。

Private Sub CommandButton21_Click()
    For Each c In Worksheets("yourworksheet").Range("yourrange")
        If c.Text = "" Then c.Select: Selection.ClearContents
    Next
End Sub

したがって、隣接するセルは空のセルにまたがることができます。

0
Jérôme Radix