这是我的目标:
我有以下数据集:
由此,我想生成以下内容:
为了RTFM的利益,这是我的思考过程和我尝试过的事情:
首先,顶部集合的两列分别位于各自的命名范围内:Color_Abbrevs,Category_Names。
我知道我可以使用JOIN()从类别名称中生成类别输出中的结果,如下所示:
JOIN("/",Category_Names)
我现在的挑战是如何创建一种"模式匹配器" (我不知道还有什么可以称之为)我可以使用缩写代替类别名来呈现结果字符串。所需模式格式的一个例子显示在A8:A10中。
首先,我尝试使用INDEX和MATCH方法进行思考:
=INDEX(Category_Names,MATCH(LEFT(A8,FIND("/",A8)-1),Category_Abbrevs,0))
这会在A9中产生正确的值,所以我认为我可能走在正确的轨道上。我要坚持的部分是如何将JOIN和INDEX以及MATCH公式连接在一起,以允许可变长度的缩写和类别。
理想情况下,我希望能够继续向顶级数据集添加值,并定义任何独特的"模式"我需要通过第二个数据集在列表中获得所需的结果。
这是否可以使用公式,或者我是否需要编写一些Google脚本来实现它?
编辑:B8和B9行都有拼写错误(道歉)。 B8应该显示" Tile Daily Store / Porcelain"和B9应该显示" Tile Depot Store / Metallic Porcelain"。
答案 0 :(得分:2)
在Google表格中使用以下公式:
=TEXTJOIN("/",TRUE,IF(ISNUMBER(SEARCH($A$1:$A$6,A8)),$B$1:$B$6,""))
在excel中,Excel在Office 365中引入了TEXTJOIN()函数,我们可以在数组公式中使用它:
{}
作为excel中的数组必须在退出编辑模式而不是Enter时使用Ctrl-Shift-Enter。如果操作正确,那么Excel会将 <div class="social">
<ul>
<li> <a href="#"> <img src="assets/Android.png" alt="Smiley face" height="42" width="42"> </a> </li>
<li> <a href="#"> <img src="assets/GitHub.png" alt="Smiley face" height="42" width="42"> </a> </li>
<li> <a href="#"> <img src="assets/GooglePlus.png" alt="Smiley face" height="42" width="42"> </a> </li>
<li> <a href="#"> <img src="assets/LinkedIn.png" alt="Smiley face" height="42" width="42"> </a> </li>
<li> <a href="#"> <img src="assets/Mail.png" alt="Smiley face" height="42" width="42"> </a> </li>
<li> <a href="#"> <img src="assets/Reddit.png" alt="Smiley face" height="42" width="42"> </a> </li>
<li> <a href="#"> <img src="assets/YouTube.png" alt="Smiley face" height="42" width="42"> </a> </li>
</ul>
</div>
放在公式周围。
注意强>
这两种方法都会按照搜索区域的顺序排列输出,而不是标准单元格中的顺序。
答案 1 :(得分:1)
或者你也可以使用公式(在B8):
=ARRAYFORMULA(JOIN("/";LOOKUP(SPLIT(A8;"/");$A$2:$A$6;$B$2:$B$6)))
Google表格中的 以“结构”的相同顺序获取“类别输出”
修改强>
看起来我错过了一些东西:P
=ARRAYFORMULA(JOIN("/";VLOOKUP(SPLIT(A8;"/";TRUE);$A$2:$B$6;2;FALSE())))
如果列表中也包含所有内容(如果找不到内容,则会完全错误)
=ARRAYFORMULA(JOIN("/";IFERROR(VLOOKUP(SPLIT(A8;"/";TRUE);$A$2:$B$6;2;FALSE());"---")))
这将显示未找到的每个部分的“---”......