使用 excel 在单个单元格内过滤
Filtering within a single cell using excel
我有一个包含两列(A 和 B)的电子表格。
A 列是 funds/companies 的列表,B 列是公司参与的融资轮次。
每个单元格中有多个值,用分号 (;) 分隔。
示例:
Depixus, Series A, 2021 ; Egle Therapeutics, Series A, 2022 ; Amolyt Pharma, Series B, 2020.
我的问题是有没有一种方法可以过滤单元格中的值。目前,B 列单元格中的所有值均未按年份顺序排列(2022、2021、2020 等)。
我需要按降序获取它们:
Egle Therapeutics, Series A, 2022 ; Depixus, Series A, 2021 ; Amolyt Pharma, Series B, 2020)
以一种不需要手动重做的高效快速方式。
在答案中使用公式时:
使用 Office 365 和 TEXTSPLIT()(在撰写本文时目前仅适用于内部测试版频道):
=LET(arr,TRANSPOSE(TRIM(TEXTSPLIT(A1,";"))),yr,RIGHT(arr,4),TEXTJOIN(" ; ",,SORTBY(arr,yr,-1)))
使用适用于 PC 的 Office 365 中可用的当前公式:
=LET(arr,TRANSPOSE(TRIM(FILTERXML("<a><b>"&SUBSTITUTE(A1,";","</b><b>")&"</b></a>","//b"))),yr,RIGHT(arr,4),TEXTJOIN(" ; ",,SORTBY(arr,yr,-1)))
所以,这就是我 尝试过的,
使用两个 O365 Insiders Beta Channel 函数 -- TEXTSPLIT()
& HSTACK()
with Regular O365 Functions with LET()
, TEXTJOIN()
& SORT()
函数,
• 单元格 A5
中使用的公式
=LET(a,TEXTSPLIT(SUBSTITUTE(A1,".",""),," ; "),b,RIGHT(a,4)+0,c,HSTACK(a,b),
TEXTJOIN(" ; ",,INDEX(SORT(c,2,-1),,1))&".")
使用 O365 函数 --> LET()
, TEXTJOIN()
& SORT()
, with Regular Excel 函数,FILTERXML()
& CHOOSE()
• 单元格 A13
中使用的公式
=LET(a,FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(A1,".","")," ; ","</b><b>")&"</b></a>","//b"),
b,RIGHT(a,4)/1,TEXTJOIN(" ; ",,INDEX(SORT(CHOOSE({1,2},a,b),2,-1),,1))&".")
我有一个包含两列(A 和 B)的电子表格。
A 列是 funds/companies 的列表,B 列是公司参与的融资轮次。
每个单元格中有多个值,用分号 (;) 分隔。
示例:
Depixus, Series A, 2021 ; Egle Therapeutics, Series A, 2022 ; Amolyt Pharma, Series B, 2020.
我的问题是有没有一种方法可以过滤单元格中的值。目前,B 列单元格中的所有值均未按年份顺序排列(2022、2021、2020 等)。
我需要按降序获取它们:
Egle Therapeutics, Series A, 2022 ; Depixus, Series A, 2021 ; Amolyt Pharma, Series B, 2020)
以一种不需要手动重做的高效快速方式。
在答案中使用公式时:
使用 Office 365 和 TEXTSPLIT()(在撰写本文时目前仅适用于内部测试版频道):
=LET(arr,TRANSPOSE(TRIM(TEXTSPLIT(A1,";"))),yr,RIGHT(arr,4),TEXTJOIN(" ; ",,SORTBY(arr,yr,-1)))
使用适用于 PC 的 Office 365 中可用的当前公式:
=LET(arr,TRANSPOSE(TRIM(FILTERXML("<a><b>"&SUBSTITUTE(A1,";","</b><b>")&"</b></a>","//b"))),yr,RIGHT(arr,4),TEXTJOIN(" ; ",,SORTBY(arr,yr,-1)))
所以,这就是我 尝试过的,
使用两个 O365 Insiders Beta Channel 函数 -- TEXTSPLIT()
& HSTACK()
with Regular O365 Functions with LET()
, TEXTJOIN()
& SORT()
函数,
• 单元格 A5
中使用的公式=LET(a,TEXTSPLIT(SUBSTITUTE(A1,".",""),," ; "),b,RIGHT(a,4)+0,c,HSTACK(a,b),
TEXTJOIN(" ; ",,INDEX(SORT(c,2,-1),,1))&".")
使用 O365 函数 --> LET()
, TEXTJOIN()
& SORT()
, with Regular Excel 函数,FILTERXML()
& CHOOSE()
• 单元格 A13
中使用的公式=LET(a,FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(A1,".","")," ; ","</b><b>")&"</b></a>","//b"),
b,RIGHT(a,4)/1,TEXTJOIN(" ; ",,INDEX(SORT(CHOOSE({1,2},a,b),2,-1),,1))&".")