【问题标题】:Excel conditional replacement without a custom macro没有自定义宏的 Excel 条件替换
【发布时间】:2014-12-15 19:22:58
【问题描述】:

有没有办法使用 Excel IF 语句(或其他但最好不是自定义宏,我只想有一个公式)来处理以下列 A 以获取 B 列

A        B
X        X
_EMPTY   custom_row3
Y        Y
_EMPTY   custom_row5
Z        Z

在伪代码中

 FOREACH ROW
 IF (A!='_EMPTY) 
    B=A
ELSE 
    B='custom_row'+$ROWNUM$
END

我检查了相关问题How to replace text of a cell based on condition in excel,但不清楚如何扩展到这种情况,这有点复杂。

【问题讨论】:

  • 您可以在 B1 中使用=IF(A1="", "custom_row"&ROW(), A1) 之类的公式,并根据需要填写。
  • 这很好用,正是我想要的!其他读者请注意,“,”需要更改为“;”
  • 用分号代替逗号将是系统区域设置。通常,北美和世界许多其他地区使用逗号作为 列表分隔符,而欧洲的某些地区和其他一些地区使用分号。 Excel 从操作系统的区域设置中读取。由于您没有提供示例公式,因此我在示例中使用了更主要的公式。很高兴你解决了。

标签: excel excel-formula excel-2010


【解决方案1】:

您可以在 B2 中使用

=IF(ISBLANK(A2),"custom_row"&+ROW(),A2)

并向下复制。 请注意非常重要点。 空单元格与包含空字符串的单元格的行为不同。 参考上图,单元格A3和A6为空(空白),而单元格A5包含一个空字符串。

您可能需要使用

=IF(OR(ISBLANK(A2),A2=""),"custom_row"&+ROW(),A2)

取决于 A 列的内容。 见this relevant answer

【讨论】:

  • 谢谢,这和 Jeeped 的评论一样有用。事实上我已经用 BLANK 替换了空白以避免这个问题,但是你的解决方案更干净!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-08
  • 2023-04-03
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
相关资源
最近更新 更多