跨多个“重命名”工作表的COUNTIF

时间:2019-10-17 18:27:47

标签: excel excel-formula excel-2016 countif

我想做的是从每张纸上算出一列,并确定通过,失败和不适用的数量。每个论坛还有一个论坛,因为它们将显示在不同的单元中(一个单元用于通过,一个单元用于失败和一个N / A)。大量在线线程,但是该解决方案在我的情况下不起作用。

我可以使用以下论坛对每个单元格中的列进行计数:

    (js)

    function openModalBox(){
      var modal = $('.modal, #mask');
    $('.open-modal').on('click', function() {
     modal.fadeIn(300);
    });
    $('.close-modal, #mask').on('click', function() {
     modal.fadeOut(800);
    });
    }
    openModalBox();

    var shoppingCart = (function() {

      cart = [];


      function Item(name, price, count) {
        this.name = name;
        this.price = price;
        this.count = count;
      }


      function saveCart() {
        sessionStorage.setItem('shoppingCart', JSON.stringify(cart));
      }



      function loadCart() {
        cart = JSON.parse(sessionStorage.getItem('shoppingCart'));
      }
      if (sessionStorage.getItem("shoppingCart") != null) {
        loadCart();
      }



      var obj = {};


      obj.addItemToCart = function(name, price, count) {
        for(var item in cart) {
          if(cart[item].name === name) {
            cart[item].count ++;
            saveCart();
            return;
          }
        }
        var item = new Item(name, price, count);
        cart.push(item);
        saveCart();
      }

      obj.setCountForItem = function(name, count) {
        for(var i in cart) {
          if (cart[i].name === name) {
            cart[i].count = count;
            break;
          }
        }
      };

      obj.removeItemFromCart = function(name) {
          for(var item in cart) {
            if(cart[item].name === name) {
              cart[item].count --;
              if(cart[item].count === 0) {
                cart.splice(item, 1);
              }
              break;
            }
        }
        saveCart();
      }


      obj.removeItemFromCartAll = function(name) {
        for(var item in cart) {
          if(cart[item].name === name) {
            cart.splice(item, 1);
            break;
          }
        }
        saveCart();
      }



      obj.totalCount = function() {
        var totalCount = 0;
        for(var item in cart) {
          totalCount += cart[item].count;
        }
        return totalCount;
      }


      obj.totalCart = function() {
        var totalCart = 0;
        for(var item in cart) {
          totalCart += cart[item].price * cart[item].count;
        }
        return Number(totalCart.toFixed());
      }


      obj.listCart = function() {
        var cartCopy = [];
        for(i in cart) {
          item = cart[i];
          itemCopy = {};
          for(p in item) {
            itemCopy[p] = item[p];

          }
          itemCopy.total = Number(item.price * item.count).toFixed(2);
          cartCopy.push(itemCopy)
        }
        return cartCopy;
      }


      return obj;
    })();


    $('.add-to-cart').click(function(event) {
      event.preventDefault();
      var name = $(this).data('name');
      var price = Number($(this).data('price'));
      shoppingCart.addItemToCart(name, price, 1);
      displayCart();
    });


    $('.clear-cart').click(function() {
      shoppingCart.clearCart();
      displayCart();
    });


    function displayCart() {
      var cartArray = shoppingCart.listCart();
      var output = "";
      for(var i in cartArray) {
        output += "<tr>"
          + "<td>" + cartArray[i].name + "</td>" 
          + "<td>(" + cartArray[i].price + ")</td>"
          + "<td><div class='input-group'><button class='minus-item input-group-addon btn btn-primary' data-name=" + cartArray[i].name + ">-</button>"
          + "<input type='number' class='item-count form-control' data-name='" + cartArray[i].name + "' value='" + cartArray[i].count + "'>"
          + "<button class='plus-item btn btn-primary input-group-addon' data-name=" + cartArray[i].name + ">+</button></div></td>"
          + "<td><button class='delete-item btn btn-danger' data-name=" + cartArray[i].name + ">X</button></td>"
          + " = " 
          + "<td>" + cartArray[i].total + "</td>" 
          +  "</tr>";
      }
      $('.show-cart').html(output);
      $('.total-cart').html(shoppingCart.totalCart());
      $('.total-count').html(shoppingCart.totalCount());
    }



    $('.show-cart').on("click", ".delete-item", function(event) {
      var name = $(this).data('name')
      shoppingCart.removeItemFromCartAll(name);
      displayCart();
    })



    $('.show-cart').on("click", ".minus-item", function(event) {
      var name = $(this).data('name')
      shoppingCart.removeItemFromCart(name);
      displayCart();
    })


    $('.show-cart').on("click", ".plus-item", function(event) {
      var name = $(this).data('name')
      shoppingCart.addItemToCart(name);
      displayCart();
    })


    $('.show-cart').on("change", ".item-count", function(event) {
       var name = $(this).data('name');
       var count = Number($(this).val());
      shoppingCart.setCountForItem(name, count);
      displayCart();
    });

    displayCart();

当我尝试计算所有电子表格中的列(F列)时,我得到一个错误,我在另一个工作表中使用了以下论坛名,同时将每个工作表名称插入其自己的单元格中(在这种情况下,A1:A3具有三个我的工作表名称-还有更多),但我没有得到结果。只是一个参考(#REF!)错误。我的标签页命名方式有问题吗?

=COUNTIF('Users - External '!F2:F27,"Pass")
=COUNTIF('Users - External '!F2:F27,"Fail")
=COUNTIF('Users - External '!F2:F27,"N/A")

enter image description here

我不是在寻找VBA解决方案。

1 个答案:

答案 0 :(得分:0)

工作表名称中似乎有空格,但是您没有在A1:A3中输入@Scott Craner所说的空格。

该公式很完美,仅与工作表名称有关。您必须重新输入A1:A3末尾的空格,否则必须删除三页末尾的空格。这就是导致出现 #REF!错误的原因。

这里是示例示例,该公式非常适用@champ Loz:-)

enter image description here