搜索文本组合,然后将其下两个单元格移动到另一个表

时间:2019-09-28 19:13:36

标签: google-sheets pivot google-sheets-formula array-formulas google-sheets-query

好吧,我有3个表,从第一个表开始,取2个单元格的值,并将其放入第3个表中,然后从第3个表中将这些单元格的总和添加到一个单元格中,然后在另一个单元格中计数。例如:第一张桌子Jacob 1 Apple(在2个不同的行中写了2次)。这将以相同的方式进入第3个表,然后将对数字进行计数(2个数字)并将其写入第一个第2个单元格,并将其相加并写入另一个单元格。我想重做一次,因为我添加了一个新的名称或数字,这破坏了公式,并且公式从上面的单元格或下面的单元开始窃取。

链接:https://docs.google.com/spreadsheets/d/1a0NIeA2xlDzpK-C4Mvq1UANfYdUHc9gHli6U3v2L6r8/edit?usp=sharing

1 个答案:

答案 0 :(得分:1)

删除 E:K
范围内的所有内容 将此公式粘贴到 E1 单元格中:

<!DOCTYPE html>
<html>

<head>
  <script src="https://d3js.org/d3.v5.min.js"></script>
</head>

<body>
  <script>
    var margins = {
      top: 20,
      bottom: 300,
      left: 30,
      right: 100
    };

    var height = 150;
    var width = 900;

    var totalWidth = width + margins.left + margins.right;
    var totalHeight = height + margins.top + margins.bottom;

    var svg = d3.select('body')
      .append('svg')
      .attr('width', totalWidth)
      .attr('height', totalHeight);

    var graphGroup = svg.append('g')
      .attr('transform', "translate(" + margins.left + "," + margins.top + ")");

    var xScale = d3.scaleLinear()
      .range([0, width]);

    var data = [{
      'age': 32.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 30.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 35.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 34.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 31,
      'educ': 14.0,
      'inlf': 1
    }, {
      'age': 54.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 37.0,
      'educ': 16.0,
      'inlf': 1
    }, {
      'age': 54.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 48.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 39.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 33.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 42.0,
      'educ': 11,
      'inlf': 1
    }, {
      'age': 30.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 43.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 43.0,
      'educ': 10.0,
      'inlf': 1
    }, {
      'age': 35.0,
      'educ': 11,
      'inlf': 1
    }, {
      'age': 43.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 39.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 45.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 35.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 42.0,
      'educ': 16.0,
      'inlf': 1
    }, {
      'age': 30.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 48.0,
      'educ': 13.0,
      'inlf': 1
    }, {
      'age': 45.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 31,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 43.0,
      'educ': 17.0,
      'inlf': 1
    }, {
      'age': 59.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 32.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 31,
      'educ': 17.0,
      'inlf': 1
    }, {
      'age': 42.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 50.0,
      'educ': 11,
      'inlf': 1
    }, {
      'age': 59.0,
      'educ': 16.0,
      'inlf': 1
    }, {
      'age': 36.0,
      'educ': 13.0,
      'inlf': 1
    }, {
      'age': 51,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 45.0,
      'educ': 16.0,
      'inlf': 1
    }, {
      'age': 42.0,
      'educ': 11,
      'inlf': 1
    }, {
      'age': 46.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 46.0,
      'educ': 10.0,
      'inlf': 1
    }, {
      'age': 51,
      'educ': 14.0,
      'inlf': 1
    }, {
      'age': 30.0,
      'educ': 17.0,
      'inlf': 1
    }, {
      'age': 30.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 57.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 31,
      'educ': 16.0,
      'inlf': 1
    }, {
      'age': 48.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 30.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 34.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 48.0,
      'educ': 16.0,
      'inlf': 1
    }, {
      'age': 45.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 51,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 30.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 46.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 58.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 37.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 52.0,
      'educ': 8.0,
      'inlf': 1
    }, {
      'age': 52.0,
      'educ': 10.0,
      'inlf': 1
    }, {
      'age': 31,
      'educ': 16.0,
      'inlf': 1
    }, {
      'age': 55.0,
      'educ': 14.0,
      'inlf': 1
    }, {
      'age': 34.0,
      'educ': 17.0,
      'inlf': 1
    }, {
      'age': 55.0,
      'educ': 14.0,
      'inlf': 1
    }, {
      'age': 39.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 40.0,
      'educ': 14.0,
      'inlf': 1
    }, {
      'age': 43.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 48.0,
      'educ': 8.0,
      'inlf': 1
    }, {
      'age': 47.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 41,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 36.0,
      'educ': 8.0,
      'inlf': 1
    }, {
      'age': 46.0,
      'educ': 17.0,
      'inlf': 1
    }, {
      'age': 34.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 41,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 51,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 33.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 52.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 58.0,
      'educ': 9.0,
      'inlf': 1
    }, {
      'age': 34.0,
      'educ': 10.0,
      'inlf': 1
    }, {
      'age': 31,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 48.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 32.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 49.0,
      'educ': 17.0,
      'inlf': 1
    }, {
      'age': 32.0,
      'educ': 15.0,
      'inlf': 1
    }, {
      'age': 58.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 50.0,
      'educ': 6.0,
      'inlf': 1
    }, {
      'age': 60.0,
      'educ': 14.0,
      'inlf': 1
    }, {
      'age': 50.0,
      'educ': 12.0,
      'inlf': 1
    }, {
      'age': 56.0,
      'educ': 14.0,
      'inlf': 1
    }, {
      'age': 51,
      'educ': 9.0,
      'inlf': 1
    }, {
      'age': 54.0,
      'educ': 17.0,
      'inlf': 1
    }, {
      'age': 59.0,
      'educ': 13.0,
      'inlf': 1
    }, {
      'age': 46.0,
      'educ': 9.0,
      'inlf': 1
    }, {
      'age': 46.0,
      'educ': 15.0,
      'inlf': 1
    }, {
      'age': 39.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 44.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 33.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 33.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 48.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 30,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 45.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 45.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 32.0,
      'educ': 13.0,
      'inlf': 0
    }, {
      'age': 47.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 34.0,
      'educ': 13.0,
      'inlf': 0
    }, {
      'age': 37.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 36.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 47.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 48.0,
      'educ': 16.0,
      'inlf': 0
    }, {
      'age': 42.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 33.0,
      'educ': 13.0,
      'inlf': 0
    }, {
      'age': 46.0,
      'educ': 10,
      'inlf': 0
    }, {
      'age': 47.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 44.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 36.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 30,
      'educ': 17.0,
      'inlf': 0
    }, {
      'age': 55.0,
      'educ': 14.0,
      'inlf': 0
    }, {
      'age': 45.0,
      'educ': 16.0,
      'inlf': 0
    }, {
      'age': 47.0,
      'educ': 17.0,
      'inlf': 0
    }, {
      'age': 46.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 49.0,
      'educ': 10,
      'inlf': 0
    }, {
      'age': 49.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 45.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 38.0,
      'educ': 17.0,
      'inlf': 0
    }, {
      'age': 47.0,
      'educ': 10.0,
      'inlf': 0
    }, {
      'age': 54.0,
      'educ': 13.0,
      'inlf': 0
    }, {
      'age': 40,
      'educ': 10,
      'inlf': 0
    }, {
      'age': 43.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 30,
      'educ': 16.0,
      'inlf': 0
    }, {
      'age': 47.0,
      'educ': 17.0,
      'inlf': 0
    }, {
      'age': 35.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 45.0,
      'educ': 16.0,
      'inlf': 0
    }, {
      'age': 33.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 54.0,
      'educ': 16.0,
      'inlf': 0
    }, {
      'age': 35.0,
      'educ': 8.0,
      'inlf': 0
    }, {
      'age': 30,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 55.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 34.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 38.0,
      'educ': 13.0,
      'inlf': 0
    }, {
      'age': 45.0,
      'educ': 10,
      'inlf': 0
    }, {
      'age': 47.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 39.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 36.0,
      'educ': 14.0,
      'inlf': 0
    }, {
      'age': 33.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 50.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 58.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 49.0,
      'educ': 17.0,
      'inlf': 0
    }, {
      'age': 40,
      'educ': 14.0,
      'inlf': 0
    }, {
      'age': 50,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 53.0,
      'educ': 9.0,
      'inlf': 0
    }, {
      'age': 36.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 46.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 36.0,
      'educ': 12.0,
      'inlf': 0
    }, {
      'age': 53.0,
      'educ': 14.0,
      'inlf': 0
    }, {
      'age': 40.0,
      'educ': 16.0,
      'inlf': 0
    }];

    var colorScale = d3.scaleLinear()
      .range(["#e7eef8", "#003366"]);

    xScale.domain(d3.extent(data, function(d) {
      return d.educ;
    }));
    colorScale.domain(d3.extent(data, function(d) {
      return d.age;
    }));

    // bin the data based on top bottom and x-position
    var bins = d3.nest()
      .key(function(d) { return [(d.inlf ? 1 : 0), d.educ] })
      .entries(data);

    // calculate positions (build the pyramid)
    var r = 3;
    bins.forEach( (bin) => {
      var ds = bin.values;
      var br = 1, n = 1;
      while (br < ds.length){
        br += n; n += 1;
      }
      n -= 1
      var c = 0; rn = n; g = 0;
      var s = r * 2 + 3;
      ds.forEach((d)=>{
        d.y = (rn - n) * s;
        d.x = (c * s);
        d.g = g;
        c += 1;
        if (c == n){
          c = 0;
          n -= 1;
          g += 1
        }
      });
    });
    
    // re-bin by age and row so that we can traslate the rows
    var binsAndRow = d3.nest()
      .key(function(d) { return [(d.inlf ? 1 : 0), d.educ]; })
      .key(function(d) { return d.g; })
      .entries(data);
    
    // draw circles
    var x = graphGroup.selectAll("g")
      .data(binsAndRow)
      .enter()
      .append("g")
      .attr("class", (d) => "bin " + "b" + d.key)
      .selectAll("g")
      .data( (d) => {
        return d.values
      })
      .enter()
      .append("g")
      .attr("class", (d) => "row " + "r" + d.key)
      .selectAll("circle")
      .data( (d) => {
        return d.values
      })
      .enter()
      .append("circle")
      .attr("r", 3)
      .attr("cx", function(d) {
        return d.x;
      })
      .attr("cy", function(d) {
        return d.y;
      })
      .style('fill', function(d) {return colorScale(d.age)});
    
    // position the pyramids
    graphGroup
      .selectAll(".bin")
      .attr("transform", function(d){
        var bb = this.getBBox(),
            xPos = (xScale(d.key.split(",")[1]) - bb.width/2),
            isFlip = d.key.startsWith("1"),
            yPos = isFlip ? height - 20 : height + 50,
            t = "translate(" + xPos + "," + yPos + ")";
        if (isFlip) t+= "scale(1,-1)";
        return t;
      })
      .selectAll(".row")
      .attr("transform", function(d) {
        var pbb = this.parentNode.getBBox();
        var bb = this.getBBox();
        return "translate(" + ((pbb.width - bb.width)/2) + "," + 0 + ")";
      });

    graphGroup.append("g")
      .attr("class", "axis axis--x")
      .attr("transform", "translate(0," + height + ")")
      .call(d3.axisBottom(xScale));

    graphGroup.append('line')
      .attr('x1', xScale(5))
      .attr('x2', xScale(17))
      .attr('y1', height - 5)
      .attr('y2', height - 5)
      .style('stroke', "#000");

    graphGroup.append('line')
      .attr('x1', xScale(5))
      .attr('x2', xScale(17))
      .attr('y1', height + 35)
      .attr('y2', height + 35)
      .style('stroke', "#000");

    graphGroup.append('line')
      .attr('x1', xScale(5))
      .attr('x2', xScale(12))
      .attr('y1', height - 5)
      .attr('y2', height - 5)
      .style('stroke', "#b8cce4")
      .style('stroke-width', "5px");

    graphGroup.append('line')
      .attr('x1', xScale(12))
      .attr('x2', xScale(14))
      .attr('y1', height - 5)
      .attr('y2', height - 5)
      .style('stroke', "#4f81b9")
      .style('stroke-width', "5px");

    graphGroup.append('rect')
      .attr('x', xScale(12))
      .attr('y', height - 10)
      .attr('width', 5)
      .attr('height', 10)
      .style('fill', "#f6d18b");

    graphGroup.append('line')
      .attr('x1', xScale(5))
      .attr('x2', xScale(11))
      .attr('y1', height + 35)
      .attr('y2', height + 35)
      .style('stroke', "#b8cce4")
      .style('stroke-width', "5px");

    graphGroup.append('line')
      .attr('x1', xScale(11))
      .attr('x2', xScale(12))
      .attr('y1', height + 35)
      .attr('y2', height + 35)
      .style('stroke', "#4f81b9")
      .style('stroke-width', "5px");

    graphGroup.append('rect')
      .attr('x', xScale(11.7))
      .attr('y', height + 30)
      .attr('width', 5)
      .attr('height', 10)
      .style('fill', "#f6d18b");
      
    
  </script>
</body>

</html>

0