如何检测 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;
}
用法:
- 将上面的代码粘贴到编辑器中:菜单工具 > 脚本编辑器...
- 保存项目
- 照常使用公式:
=isMerge(sheetName, a1Notation)
您可以复制该列并将其粘贴到某处,例如在其旁边创建一个额外的列。
然后您可以创建一个新列。您可以 运行 增加两个单元格中的数字并将每个单元格彼此相减。如果结果不为0,则单元格已合并。
我遇到了类似的问题,发现了一个 hack - ctrl+shift+down 按钮 select 列中的所有数据。这自动成为两列的 selection(我想要 select 加上它旁边的一列)。然后我从列表的底部开始工作,使用 ctrl+shift+向下按钮 select 该列中的所有数据,从底部的 20 个条目开始 - 这样,只有该列中的数据是 select - 它也没有自动包含下一行,这意味着合并的单元格不在这些单元格中。
我重复了这个步骤,一次增加 ~50 行,直到 selection 突然变成两行,而实际上我只是 selecting 单行数据.这意味着合并的单元格在最后 50 行中的某处,我只是在 selection 中的列表中向下检查合并的单元格。
在尝试从我最近合并的一个相对较大的列表中删除重复的 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;
}
用法:
- 将上面的代码粘贴到编辑器中:菜单工具 > 脚本编辑器...
- 保存项目
- 照常使用公式:
=isMerge(sheetName, a1Notation)
您可以复制该列并将其粘贴到某处,例如在其旁边创建一个额外的列。 然后您可以创建一个新列。您可以 运行 增加两个单元格中的数字并将每个单元格彼此相减。如果结果不为0,则单元格已合并。
我遇到了类似的问题,发现了一个 hack - ctrl+shift+down 按钮 select 列中的所有数据。这自动成为两列的 selection(我想要 select 加上它旁边的一列)。然后我从列表的底部开始工作,使用 ctrl+shift+向下按钮 select 该列中的所有数据,从底部的 20 个条目开始 - 这样,只有该列中的数据是 select - 它也没有自动包含下一行,这意味着合并的单元格不在这些单元格中。
我重复了这个步骤,一次增加 ~50 行,直到 selection 突然变成两行,而实际上我只是 selecting 单行数据.这意味着合并的单元格在最后 50 行中的某处,我只是在 selection 中的列表中向下检查合并的单元格。