LibreOffice Calc自动填充基于单元格的列表和值
我正在制作一个电子表格来帮助我进行个人会计。 我试图在LibreOffice Calc中创build一个公式,它将在给定的单元格中search大量不同的文本string,如果find,则返回一个文本string。
例如,公式应该在$C6
search“汉堡”或“麦当劳”,然后返回“食品”到$E6
。 它不应该区分大小写。 和汉堡王的情况一样,需要对string进行部分匹配。 我需要它能够search其他关键字,并返回这些值,如“AutoZone”,并返回“自动”和NewEgg并返回“电子”。
我有一个艰难的时间find任何解决scheme,而我可以得到的壁橱是一个MATCH
公式,但一旦我嵌套在一个IF
它不会工作。 我也试着用OR
嵌套IF
; 也不喜欢。
例子:
=IF(OR(D10="*hulu*",D10="*netflix*",D10="*movie*",D10="*theature*",D10="*stadium*",D10="*google*music*")=1,"Entertainment",IF(OR(D10="*taco*",D10="*burger*",D10="*mcdonald*",D10="*dq*",D10="*tokyo*",D10="*wendy*",D10="*cafe*",D10="*wing*",D10="*tropical*",D10="*kfc*",D10="*olive*",D10="*caesar*",D10="*costa*vida*",D10="*Carl*",D10="*in*n*out*",D10="*golden*corral*",D10="*nija*",D10="*arby*",D10="*Domino*",D10="*Subway*",D10="*Iggy*",D10="*Pizza*Hut*",D10="*Rumbi*",D10="*Custard*",D10="*Jimmy*")=1,"Food",IF(OR(D10="*autozone*",D10="*Napa*",D10="*OREILLY*")=1,"AUTO","-")))
我可以创build一个不同的表,并创build一个查找引用,所以另一种方法来放置这个是我需要的东西,做什么和hlookup
和hlookup
相反,并返回给定列中匹配的任何数据的标题值。
就像是:
=IF(NOT(ISNA(MATCH(A1,B3:B99))),B2,IF(NOT(ISNA(MATCH(A1,C3:C99))),c2,0))
如果A1
是testing, B2
和C2
是标题,那么在下面search。
任何帮助将非常感激。 提前致谢!
根据我的意见,试试这个:
=IF(SUM(LEN(G150)-LEN(SUBSTITUTE(LOWER(G150),{"hulu","netflix","movie","theater"," stadium"},"")))>0,"Entertainment",IF(SUM(LEN(G150)-LEN(SUBSTITUTE(LOWER(G150),{"burger","taco","vida","cafe","wing","dairy","mcdonald","wendy","kfc","pizza","carl","domino","ceaser","olive","jimmy","custard","subway","arby"},"")))>0,"Food",IF(SUM(LEN(G150)-LEN(SUBSTITUTE(LOWER(G150),{"autozone","Napa","oreilly"},"")))>0,"AUTO","-")))
这是一个数组公式,必须用Ctrl-Shift-Enter确认。
你可以使用INDEX / MATCH / VLOOKUP公式来做到这一点。 只是一些注意事项:我使用Excel,并且从来没有使用自由,所以希望这个工程; 并且,您需要一个映射表,将MacDonalds映射到食品,Google音乐到娱乐等(尽可能使用所有情况)。
假设您的屏幕截图中的映射表是A6到E9。
E10 =vlookup(C10,$C$6:$E$9,3,0)
说明:它在表格$ C $ 6:$ E $ 9中查找C10(汉堡王),结果是该表格中的第三列(E是C的第三列,其中C10被查找)。 0会给你一个精确的匹配,如果你想要部分匹配,那么在那里input1。
注意:如果你的映射表在G列和H列中(G中的服务名称和H中的服务types),并且你不确定它将有多less个入口,则公式的mod是=vlookup(C10,$G:$H,2,0)
=vlookup(C10,$G:$H,2,1)
对于部分匹配=vlookup(C10,$G:$H,2,1)
OR =vlookup(C10,$G:$H,2,1)
。 在这里,3被replace为2,因为H是G的第二列,其中C10将被查找。
编辑:使用INDEX
和MATCH
function的VLOOKUP
近似匹配的文本 – 这可能是您在上次评论(?)中看到的解决scheme
有两件事情需要完成。 a。参考表项,b。应用INDEX
/ MATCH
function。
第一部分 – 在您的参考表格中,您必须在2 * s之间input要查找的值。 你在你的例子中提到的Qn *movie*
, *wendy*
等等。 这真是使我们能够通过单元格引用来查找的技巧。 相应的回报值,如娱乐/食品等等,都必须是他们自己的完整单词。 假设您已经在G6:H26列(G-lookup值,H-return值)
B部分 – 在你的单元格F6(按照你的截图),你可以试试这个公式=INDEX($H$6:$H$26,MATCH(C6,$G$6:$G$26,0))
真的只是使用INDEX / MATCH的VLOOKUPreplace公式。
由于存储在G列中的值是* s,因此MATCH公式中的单元格C6将执行部分读取。