excel 基于下面包含的字母创建新列

mm9b1k5b  于 2023-04-07  发布在  其他
关注(0)|答案(2)|浏览(135)

我有一个数据集,看起来像下面这样:

Nickel  10
Nickel  U
Nickel  10
Nickel  U
Nickel  10
Nickel  U
Nickel  1.4
Nickel  J
Nickel  10
Nickel  U
Nickel  10
Nickel  U
Nickel  10
Nickel  U
Sodium  8.1
Sodium  7.4
Sodium  6.2
Sodium  7.6
Sodium  7.9
Sodium  6.9
Sodium  7.8
Sodium  8.9
Sodium  9
Sodium  7.9
Sodium  7
Sodium  R
Sodium  8.4
Sodium  7.7

某些行的下面有与上面的数字对应的字符。例如:镍10 U.我想为字符添加另一列,如果一个数字下面有该字符。棘手的部分是,有些值不对应于一个字符(如果下面没有字符),这些将需要保持空白。
我可以创建一个代码来询问:如果值下面有字符,则在相邻列中添加字符。如果值下面没有字符,则将相邻列留空。

lymnna71

lymnna711#

=IF(ISTEXT(B2),B2,"")

这将检查B列中的单元格。如果是文本,则返回下面单元格中的字母。如果不是文本,则返回空白。您可以向下拖动公式以覆盖所有数据。

sirbozc5

sirbozc52#

数据平移

单个单元格(向下复制)

=IF(AND(ISNUMBER(B1),ISTEXT(B2)),B2,"")

数组公式(Microsoft 365中溢出)

=IF(ISNUMBER(B1:B13)*ISTEXT(B2:B14),B2:B14,"")

吹毛求疵

  • 这两种解决方案实际上都是不准确的,因为它们都包含了header(B1)。
  • 将范围向下移动一行将类似地包括数据(B15)下方的单元格。
  • 在Microsoft 365中,您可以通过使用VSTACKDROP来获得数据的上移版本来解决这个问题。然后您可以并排比较这些值(参见E:F列)。
=LET(d,B2:B14,
    s,VSTACK(DROP(d,1),""),
IF(ISNUMBER(d)*ISTEXT(s),s,""))

相关问题