![](/img/trans.png)
[英]is there any way to copy column values from one sheet to another sheet as row based on sheet one grouping
[英]Check if any values of one column contains any values from another column
因此,我有一個公式一直在使用,以查看一列中的任何單元格是否與另一組值中的任何單元格相匹配(在另一個稱為公司的工作表中):
=IF(ISERROR(VLOOKUP(K1,companies!A:A,1,FALSE)),"Keep","Delete")
現在,我嘗試做完全相同的事情,只是現在,我想查看是否有任何單元格包含單元格的任何子字符串(companies!A:A),而不是匹配。 不確定如何執行此操作。
=IF(ISERROR(VLOOKUP(CONCATENATE("*",K1,"*"),companies!A:A,1,FALSE)),"Keep","Delete")
只需將您的K1
引用更改為CONCATENATE("*",K1,"*")
,即可基於vlookup通配符。
這是一張顯示此工作方式的圖像,盡管將其修改為一張紙。 您會看到一個,四個和五個被刪除,因為它們包含在列表中,但不完全包含在列表中。
編輯因此,在評論中進行了一些討論之后,發現以上內容是對需求的一種誤解。 這個問題實際上是想知道某個值是否包含另一列中的任何字符串,這在問題上要困難得多-但這使我感到煩惱,所以我進行了研究,我認為我有所收獲這樣可行。
公式如下:
=IF(OR(ISNUMBER(SEARCH("*"&$H$2:$H$14&"*",I2))),"Delete","Keep")
必須使用CTRL-SHIFT-ENTER輸入它,以使其成為數組函數才能工作
還必須明確定義引用列(即H#:H#,而不是H:H),否則所有內容將返回true,因為數據下方的空白單元格將匹配任何內容。
話雖如此,您將知道它是一個數組函數,因為它將在公式欄中的公式兩邊帶有方括號,如下所示。
我強烈建議您瀏覽“評估公式”工具,以了解自己的工作方式,但是我將在下面以匹配行的示例為依據,對其進行詳細說明,因為它更加明顯。
首先,excel將您的引用和連接評估為單元格值的數組,並將您的引用替換為要搜索的字符串,因此我們得到如下信息:
=IF(OR(ISNUMBER(SEARCH({"*john*";"*jack*";"*fake*";"*bill*";"*bob*";"*test*";"*blah*";"*hey*";"*words*";"*ten*";"*eleven*";"*jim*";"*susie*"},"fake@example.org"))),"Delete","Keep")
然后,Excel將針對您要搜索的字符串對每個術語進行搜索,這將返回結果的數組。 沒有匹配項時,注釋搜索將返回“ #VALUE”。
=IF(OR(ISNUMBER({#VALUE;#VALUE;1;#VALUE;#VALUE;#VALUE;#VALUE;#VALUE;#VALUE;#VALUE;#VALUE;#VALUE;#VALUE})),"Delete","Keep")
然后,Excel對這個數組執行IsNumber,然后再次將True / False結果存儲在數組中。
=IF(OR({FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}),"Delete","Keep")
然后,我們添加了OR,它將對數組求值,如果任何結果為True,則返回True,然后對If求值。
似乎可以正常工作,盡管性能可能會影響大型數據集。 這種東西將更適合某種SQL工具。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.