2017-06-21 68 views
1

行,所以試圖用下面右/長度不工作

=LEFT(A1,LEN(A1)-(RIGHT(A1)=",")) 

公式在包含公式的單元格:

=IF($I10>0,CONCATENATE($H10," - ",$I10,", ",IF($K10>0,CONCATENATE($J10," - ",$K10,", ",IF($M10>0,CONCATENATE($L10," - ",$M10),"")),"")),"") 

它轉換爲

Tiffany - 5, Ben L - 4, Cat - 4 

現在,如果我用一個「1」的單元設置了一個簡單的測試,代碼工作正常,它刪除了逗號。如果在最後碰巧有一個「,」將不會起作用,如果一個特定的人返回0作爲他們的結果,可能會發生這種情況。

+0

公式=代碼,也去掉了VBA代碼,因爲它是不是在這種情況下,適當的。它適用於您的測試單元格,但不包含任何以逗號結尾的其他值。 –

+1

該公式本身似乎不必要的晦澀難懂。 '= IF(RIGHT(A1)=「,」,LEFT(A1,LEN(A1)-1),A1)'更清楚地說明邏輯。 –

+1

您可以使用[tag:textjoin]工作表函數而不是CONCATENATE嗎?可以通過否定檢查尾隨逗號來解決一些問題。 – Jeeped

回答

2

您的拼接公式會追加", "(逗號+空格),因此單元格中的最後一個字符不是逗號,而是空格。這就是爲什麼它在你的測試用例"1,"中起作用,但在實際情況下不起作用。

一起運用公式的TRIM函數忽略尾隨空白:

=LEFT(TRIM(A2),LEN(TRIM(A2))-(RIGHT(TRIM(A2))=",")) 

enter image description here

+1

哇,這就是爲什麼你不睡覺後,這個東西沒有工作,甚至沒有跨過我的腦海,謝謝! –