
我有一個表,其中填充了來自其他表的數據。我的表格儲存格中的公式非常簡單(引用另一個工作表中的儲存格)。
在我的表中,我有「標題」行(在這種情況下為第57 行和第64 行),其中僅包含一個文字值,我希望將其溢出到相鄰單元格,因為這些行中的相鄰單元格始終為空。
如果表中的值是手動輸入的,則不會有問題,而且儲存格看起來就像我想要的那樣,如下圖所示。
第57 行中第一個單元格的值不會溢出,因為相鄰單元格包含公式(該公式基本上是“=OtherCell”,其中OtherCell 不包含任何值(更具體地說,值為“”) )
值得注意的是,由於資料是自動提取到資料庫中的,因此「標題」行的位置會發生變化並出現在表中的許多行中。
我怎樣才能實現這個目標...
- 不使用手動幹預(這些是自動報告,我無法刪除公式,因為生成的下一個報告將是錯誤的)
- 可以使用VBA,但不能以「不可逆」的方式修改表格(這種方式使得下次計算表格時資料錯誤),原因與手動介入相同。
我使用 Excel 2013,但我相信這個問題適用於 2007+ 版本的 Excel。
答案1
簡短的回答是:你不能。
長答案是,只有真正的空白單元格才會允許左側下一個單元格中的文字溢出並顯示在該單元格中。
這就是 Excel 的工作原理。
如果你特別排除手動幹預、刪除公式以及 VBA,除了接受預設值(即右側單元格中的公式將防止文字溢出到右側)之外,別無選擇。
不要向使者開槍。
答案2
如果你真的想這樣做,你可以為最左邊的儲存格建立一個複雜的公式來處理它。它不會讓表的資料直接用於進一步的計算,而第二列和第三列不會真正被使用,這可能會幹擾使用者。但它可以在第一列中顯示資料和完整條目。人們可以刪除它們,這可能會讓用戶更容易接受。
由於第一列中有明確的數字條目和字母條目,但沒有字母數字條目,因此可以先使用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()` 進行測試,將每個條目包裝起來並根據外觀需要添加空格,但可以實現外觀,儘管使用相當多的工作。
如果測試成功,則儲存格僅具有目前的文字結果,而無需讀取第二列和第三列,因為據我所知,它們什麼也沒有。
如果在第一列/第二列之間使用給定數量的空格,在第二列/第三列之間使用不同數量的空格,那麼這可能是從表中提取資料以供其他地方使用的可靠基礎。
但是,如果在其他地方使用,也可以簡單地使用用於直接填充該表的公式,而不是在表中查找某些內容,而是在來源資料中進行第一級查找。因此,直接查找而不是在已經查找過的材料中查找。某種程度上有點「乾淨」。
答案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
因此,相鄰單元格可以延伸到空白單元格之上。