2013-09-24 77 views
1

我試圖號碼的單個列轉換在Excel取決於內容到多個之間的差。= IF(ISNUMBER(SEARCH .... 1和11

例如表1中包含1列包含1和11之間的1個或多個號碼以逗號分隔的表2應包含具有取決於在表中找到的號碼爲1或0 11列1.

我使用下面的公式目前:

=IF(ISNUMBER(SEARCH("1",A2)),1,0) 

下一列包含以下內容:

=IF(ISNUMBER(SEARCH("2",A2)),1,0) 

一路11

=IF(ISNUMBER(SEARCH("11",A2)),1,0) 

的問題,這不過是尋找到1引用代碼還可以找到引用11.是否有可能寫一個公式,它可以告訴差異,如果我在表1中有以下內容:

2, 5, 11 

它不在表2的第1列中放一個1?

謝謝。

回答

4

使用,對於只有逗號名單:

=IF(ISNUMBER(SEARCH(",1,", ","&A2&",")),1,0) 

如果列表與,(逗號+空格)分隔:

=IF(ISNUMBER(SEARCH(", 1,", ", "&A2&",")),1,0) 
+1

Aargh,我只是輸入這個答案!如果每個逗號之前/之後的空格數量不一致,則必須對A2的內容進行某種清理,例如使用TRIM和/或SUBSTITUTE功能。 – nekomatic

+1

@nekomatic好點。寫下你自己的答案來解決這個問題! –

0

如何使用SUBSTITUTE功能將所有的 「11」到羅馬數字「XI」:

=IF(ISNUMBER(SEARCH("1",SUBSTITUTE(A2, "11", "XI"))),1,0) 
+1

那麼「10」呢? ;-) – nekomatic

+0

@nekomatic,好點!需要添加另一個SUBSTITUTE函數,或者只是使用LS_dev解決方案,我認爲這更好。 – PaulStock

-1

如果您想要消除「11」情況,但這是基於硬編碼值,應該有一個更聰明的解決方案。

= IF(ISNUMBER(SEARCH(AND( 「1」,NOT( 「11」)),A2)),1,0)

+1

這不是一個更智能的解決方案。 AND()會返回一個布爾值(true或false),並且在你的情況下總會返回一個錯誤。 – Jerry

+0

這不起作用。它在A4中搜索AND的結果(「1」,NOT(「11」)),它是#VALUE。 – nekomatic

+0

如果你有一個細胞2,5,11(我不在乎它會是A4還是A2或A3455),它會返回0 - 只是測試。也許我誤解了這個任務。表現如下:= IF(ISNUMBER(SEARCH(「,11,」,「,」&A2&「,」)),1,0)如果我刪除了逗號。所以會appriciate如果你指向我的失敗案件,以便我能明白什麼是錯誤的 – brunod

2

LS_dev的回答的一個版本將與0應付...前N或每個逗號後的空格是:

=IF(ISNUMBER(SEARCH(", 1 ,",", "&TRIM(SUBSTITUTE(A2,","," , "))&" ,")),1,0) 

替代確保總有至少一個空間之前和每個逗號後的TRIM替換多個空格用一個空格,所以TRIM函數的結果將有每個逗號前後恰好有一個空格。