如何检测 Google 工作表中合并了哪些单元格

How To Detect Which Cells Are Merged In Google Sheets

在尝试从我最近合并的一个相对较大的列表中删除重复的 phone 数字时,Google 表格向我显示了以下错误消息:

There was a problem. Your selection contains a merged cell. To remove duplicates, all cells must contain the same number of rows and columns.

我用来测试并尝试在 Google 工作表中公开合并单元格的公式是:

=if(columns(A2:F2) = 6, "True", "False")

但这总是返回 true 因为即使单元格可以合并,它们仍然被视为单独的单元格。

我想知道是否有一种简单的方法可以在 Google 表格中发现和整理这些单元格。 Excel used to have a very simple way of doing it 但后来删除了该功能。

有什么想法吗?

如果您有这样的选项,您可以使用条件格式来检查合并的单元格,例如:

=MOD(COLUMN(),2)=0

您可以立即发现颜色模式中断的合并单元格


以相同的方式,您可以对行使用此公式:

=MOD(ROW(),2)=0


或者您可以使用脚本来查找合并的单元格:https://issuetracker.google.com/issues/36753230

自定义公式

function isMerge(sheetName, a1Notation) {
  var range = SpreadsheetApp.getActive().getSheetByName(sheetName).getRange(a1Notation);

  var merges = [];
  for (var i = 0; i < range.getHeight(); i++)
  {
    var merge = range.offset(i, 0, 1, 1).isPartOfMerge();
    merges.push(merge);    
  }
  return merges;
}

用法:

  1. 将上面的代码粘贴到编辑器中:菜单工具 > 脚本编辑器...
  2. 保存项目
  3. 照常使用公式:=isMerge(sheetName, a1Notation)

您可以复制该列并将其粘贴到某处,例如在其旁边创建一个额外的列。 然后您可以创建一个新列。您可以 运行 增加两个单元格中的数字并将每个单元格彼此相减。如果结果不为0,则单元格已合并。

我遇到了类似的问题,发现了一个 hack - ctrl+shift+down 按钮 select 列中的所有数据。这自动成为两列的 selection(我想要 select 加上它旁边的一列)。然后我从列表的底部开始工作,使用 ctrl+shift+向下按钮 select 该列中的所有数据,从底部的 20 个条目开始 - 这样,只有该列中的数据是 select - 它也没有自动包含下一行,这意味着合并的单元格不在这些单元格中。

我重复了这个步骤,一次增加 ~50 行,直到 selection 突然变成两行,而实际上我只是 selecting 单行数据.这意味着合并的单元格在最后 50 行中的某处,我只是在 selection 中的列表中向下检查合并的单元格。