Excel : 根据 patterns/substrings 在列中搜索
Excel : Search in column based on patterns/substrings
在我的 excel sheet (Excel-365) 中,我有 3 列,即 Table_Name、Size_MB 和 Session_Num,如下所示。我试图在两个单独的列中列出所有这些 Table_Name(A 列)及其 Size_MB(B 列),其中 Table_Name 由 Session_Num(C 列)组成在名称末尾加上下划线 (_),例如 BAL1_98460501.
注:
Table_Name 中有大约 116k 条记录,Session_Num 中有 80k 条记录,我正在使用 Excel-365.
Table_Name Size_MB Session_Num
TDATASEG 110135 98460501
SNP_SESS_TASK 15346 240089501
BIN$yb73fGvTAPbgU4IdCBcZFA==[=12=] 875 68243501
BAL1_15882501 248 112275501
BAL1_98460501 176 635501
LOG_216464501 114 28794501
EXCH_240089501 0.375 225655501
EXCH_RATE_252682501 0.375 216464501
LOG_68243501 0.75 467687453
CUR_DEC_112275501 0.0625 225659501
BAL_200895501 0.5625 252682501
...................... ......... ...............
…..................... ......... ...............
预期输出:
Table_Name Size_MB
BAL1_98460501 176
LOG_216464501 114
EXCH_240089501 0.375
EXCH_RATE_252682501 0.375
LOG_68243501 0.75
CUR_DEC_112275501 0.0625
…................ .........
…................ .........
能否请你给我一个提示,我们如何使用 excel 公式来实现这个?谢谢。
如果你有Excel-365那么可以试试下面的公式。
=FILTER(A2:B6,ISNUMBER(SEARCH("_",A2:A6)))
以上公式将过滤 table 名称字段中具有下划线 _
的行。
如果您想要 return C 列最后一个下划线后有数字的 table 名称,并且您使用的是 Office 365,则可以尝试此公式。
=FILTER(A2:B12,COUNTIF(C2:C12,FILTERXML("<x><y>"&SUBSTITUTE(A2:A12,"_","</y><y>")&"</y></x>","//y[last()]")))
你可以试试:
E2
中的公式:
=FILTER(A2:B12,COUNTIF(C2:C12,TRIM(RIGHT(SUBSTITUTE(A2:A12,"_",REPT(" ",LEN(A2:A12))),LEN(A2:A12)))),"")
在我的 excel sheet (Excel-365) 中,我有 3 列,即 Table_Name、Size_MB 和 Session_Num,如下所示。我试图在两个单独的列中列出所有这些 Table_Name(A 列)及其 Size_MB(B 列),其中 Table_Name 由 Session_Num(C 列)组成在名称末尾加上下划线 (_),例如 BAL1_98460501.
注: Table_Name 中有大约 116k 条记录,Session_Num 中有 80k 条记录,我正在使用 Excel-365.
Table_Name Size_MB Session_Num
TDATASEG 110135 98460501
SNP_SESS_TASK 15346 240089501
BIN$yb73fGvTAPbgU4IdCBcZFA==[=12=] 875 68243501
BAL1_15882501 248 112275501
BAL1_98460501 176 635501
LOG_216464501 114 28794501
EXCH_240089501 0.375 225655501
EXCH_RATE_252682501 0.375 216464501
LOG_68243501 0.75 467687453
CUR_DEC_112275501 0.0625 225659501
BAL_200895501 0.5625 252682501
...................... ......... ...............
…..................... ......... ...............
预期输出:
Table_Name Size_MB
BAL1_98460501 176
LOG_216464501 114
EXCH_240089501 0.375
EXCH_RATE_252682501 0.375
LOG_68243501 0.75
CUR_DEC_112275501 0.0625
…................ .........
…................ .........
能否请你给我一个提示,我们如何使用 excel 公式来实现这个?谢谢。
如果你有Excel-365那么可以试试下面的公式。
=FILTER(A2:B6,ISNUMBER(SEARCH("_",A2:A6)))
以上公式将过滤 table 名称字段中具有下划线 _
的行。
如果您想要 return C 列最后一个下划线后有数字的 table 名称,并且您使用的是 Office 365,则可以尝试此公式。
=FILTER(A2:B12,COUNTIF(C2:C12,FILTERXML("<x><y>"&SUBSTITUTE(A2:A12,"_","</y><y>")&"</y></x>","//y[last()]")))
你可以试试:
E2
中的公式:
=FILTER(A2:B12,COUNTIF(C2:C12,TRIM(RIGHT(SUBSTITUTE(A2:A12,"_",REPT(" ",LEN(A2:A12))),LEN(A2:A12)))),"")