0

在我的 Excel 表 ( Excel-365 ) 中,我有 3 列,即Table_Name、Size_MBSession_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==$0   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 公式实现这一目标?谢谢。

4

3 回答 3

1

如果要返回 C 列中最后一个下划线后面有数字的表名,并且您使用的是 Office 365,则可以尝试此公式。

=FILTER(A2:B12,COUNTIF(C2:C12,FILTERXML("<x><y>"&SUBSTITUTE(A2:A12,"_","</y><y>")&"</y></x>","//y[last()]")))
于 2021-09-23T06:01:04.583 回答
1

你可以试试:

在此处输入图像描述

中的公式E2

=FILTER(A2:B12,COUNTIF(C2:C12,TRIM(RIGHT(SUBSTITUTE(A2:A12,"_",REPT(" ",LEN(A2:A12))),LEN(A2:A12)))),"")
于 2021-09-23T06:17:51.167 回答
0

如果您有Excel-365,则可以尝试以下公式。

=FILTER(A2:B6,ISNUMBER(SEARCH("_",A2:A6)))

_上面的公式将适合在表名字段中具有下划线的行。

在此处输入图像描述

于 2021-09-23T05:39:10.750 回答