如何检测合并到Google表格中的单元格

时间:2019-07-06 14:59:42

标签: google-sheets merge formatting formula gs-conditional-formatting

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

  

出了问题。   您的选择包含一个合并的单元格。要删除重复项,所有单元格必须包含相同数量的行和列。

我用来测试并尝试显示Google表格中合并单元格的公式是:

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

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

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

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

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

=MOD(COLUMN(),2)=0

enter image description here

您可以在其中立即发现颜色图案中断的合并单元格


您可以以相同的方式将此公式用于行:

=MOD(ROW(),2)=0

enter image description here


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

答案 1 :(得分:0)

自定义公式

function displayMatches() {
  const searchText = '20 pack';
  const searchUrl = document.querySelector('.custom-select').value;
  const place = findSingleMatches(searchText, searchUrl, name);

  if (place) {
    const regex = new RegExp(searchText);
    const nameName = place.name.replace(regex, `<span class="hl">${searchText}</span>`);
    var shop = place.url.replace(/(centra)|[^]/g, '$1').replace(/^\w/, c => c.toUpperCase());
    var shop1 = place.url.replace(/(tesco)|[^]/g, '$1').replace(/^\w/, c => c.toUpperCase());
    var shop2 = place.url.replace(/(aldi)|[^]/g, '$1').replace(/^\w/, c => c.toUpperCase());
    var shop3 = place.url.replace(/(lidl)|[^]/g, '$1').replace(/^\w/, c => c.toUpperCase());
    var shop4 = place.url.replace(/(supervalu)|[^]/g, '$1').replace(/^\w/, c => c.toUpperCase());
    html = `
           <li> 
              <a href="${place.url}" target="_blank">
                  <span class="name">${nameName} <br> ${(place.price)} <br><br><sup>${shop} ${shop1} ${shop2} ${shop3} ${shop4}</sup></span>
                  <img src="${place.imgurl}" alt="Drink Image" height="87.5" width="100">
            </a>
         </li>
        `;
  } else {
    html = '<li> No Searches Found </li>'
  }
  suggestions.innerHTML = html;
};

function findSingleMatch(wordToMatch, searchUrl, name) {
    return name.find(place => {
        const regEx = new RegExp(wordToMatch, 'gi');
        return regEx.test(place.name) && place.url.startsWith(searchUrl);
    });
}

用法:

  1. 将上面的代码粘贴到编辑器中:菜单工具>脚本编辑器...
  2. 保存项目
  3. 照常使用公式: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; }

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test#Description

答案 2 :(得分:0)

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