我正在操纵由另一个程序创建的数据并保存到Excel中,并且该数据与某些内容缩写的方式不一致,也不与某些单元格中的间距保持一致。这个网站在提取一些数据方面做了很多帮助,但这个让我很难过。如果它已经被回答了,请指出我的答案,因为我找不到它。 :)
我有一个“参考”工作表(保持隐藏状态),其中第一列是可能的缩写,第二列是需要返回的值。参考表可能会显示:(单元格分隔//,行分隔\:Apple // Apple \ Apple // Apple \ Banana // Banana \ Ban // Banana \ Org // Orange \ Orange // Orange)
创建/导入的数据可能包含4个看起来像这样的单元格(单元格由//:1234分隔 - Apple - Cut and serve //有时836 Banana Raw // Org Peel // 730-Orange-Juice):< / p>
我需要提取每个引用的水果的名称。实际上,我需要的是行(在参考表上),其中第一列中单元格的内容包含在导入的数据中。然后,我可以使用查找从该行的第二列中的单元格中提取值。
因此,在我的示例数据中,公式将返回:
2 3 五 6
我希望能够清楚地解释这一点。哦,我只能使用公式,没有任何编程。
感谢您提出任何指示。
答案 0 :(得分:0)
在我看来,如果您在展示时导入数据,则无法使用公式执行此操作,因为您无法执行搜索&#34;对于每个&#34;子串&#34; (或单词)包含在单元格中,将其与其他子串列表进行比较 否则,如果您导入&#34;创建/导入&#34;的数据。 sheet指定为单元格分隔符的空格&#34; &#34;并作为行分隔符&#34; //&#34;每个单元格都有一个单词,比如
A | B | C | D | E | F | G |
1234 - apple - cut and serve
sometimes 836 banana raw
org peel
730 orange juice
这里你可以使用导入形成的列的每个单元格VLOOKUP
来搜索&#34;参考&#34;中的单词。 sheet,所以使用相同数量的cols(在这种情况下为7),对于cols的每个单元格,为相应的单元格(示例中的A到G)执行VLOOKUP
并找到你的friut,就像这样
=VLOOKUP(A1;'[Worksheet_reference.xlsx]sheet_reference'!$A$1:$A$100;2;FALSE)
你可以获得类似
的东西 AA | AB | AC | AD | AE | AF | AG |
N/A N/A apple N/A N/A N/A N/A
N/A N/A banana N/A
orange N/A
N/A orange N/A
您可以添加IF
ISNA
来检测N / A值并编写其他内容而不是它们,例如
=IF(ISNA(VLOOKUP(A1;'[Worksheet_reference.xlsx]sheet_reference'!$A$1:$A$100;2;FALSE));"";VLOOKUP(A1;'[Worksheet_reference.xlsx]sheet_reference'!$A$1:$A$100;2;FALSE))
返回&#34;&#34;而不是N / A,然后你可以连接结果(你说每行只有一个friut)所有行都将结果放在一行中,就像在单元格中AF
=AA&AB&AC&AD&AE&AF&AE
你只会获得水果......
事情并非如此&#34;干净&#34;,但这是我能想象的唯一方式;)
埃托