我有一个大表按行和按行分类。每个类别中的行/列数是不规则的。 在下面的示例中,行分为颜色,列分为(a,b)组:
在行\列类别组合创建的每个矩形中,我需要计算包含至少一个数字的列数。
答案应该是:
我当然缺少的是上面M栏中的公式。 我从这开始:
=SUMPRODUCT(--($B$2:$H$9<>0)*--($A$2:$A$9=$L2)*--($B$1:$H$1=$K2))
这会计算每个矩形中包含数字的所有单元格,但我仍然需要将其分成列,然后不计算单元格,但检查任何 列中的单元格包含一个数字,然后计算这些列。
如果我添加另一个表来聚合这部分路径然后从聚合表中计数,这当然会更容易。我的问题是,如果可以直接计算一次吗? (为什么?清洁,高效,优雅......)
感谢任何帮助解决这个问题。
答案 0 :(得分:1)
你可以使用像这样的数组公式。它使用MMULT查找满足各种条件的单元格的列总数,然后使用SUM查找这些总数中有多少大于零。
=SUM(--(MMULT(TRANSPOSE(ROW($B$2:$H$9))^0,N($B$2:$H$9*($B$1:$H$1=$A11)*($A$2:$A$9=$B11)))>0))
必须使用 Ctrl Shift 输入
在反射时,您可以将其简化为
=SUM(--(MMULT(TRANSPOSE(ROW($B$2:$H$9))^0,$B$2:$H$9*($B$1:$H$1=$A11)*($A$2:$A$9=$B11))>0))
你也不需要N,因为MMult第二部分的乘法结果已经是一组数字
<?php
require 'db_connect.php';
$conn = Connect();//function is on db_connect file
$value_fname = $conn->real_escape_string($_POST['fname']);
$value_lname = $conn->real_escape_string($_POST['lname']);
$value_email = $conn->real_escape_string($_POST['email']);
$sql = "SELECT count(email) FROM inquiry WHERE email='$value_email'";
$result = $conn->query($sql);
if (mysqli_num_rows($result) > 0) { // duplicate entry found
header('Location: error.html');
$conn->close();
} else {
$query = "INSERT INTO `inquiry` (`fname`,`lname`, `email`,
`time_stamp`) VALUES ('$value_fname','$value_lname', '$value_email',
CURRENT_TIMESTAMP)";
$success = $conn->query($query);
if (!$success) {
header('Location: error.html');
die("Couldn't enter data: " . $conn->error);
} else {
$to = $value_email; // Send email to our user
$subject = 'Signup | Examples'; // Give the email a subject
$message = '
Hi ' . $value_fname . ',
Thanks for signing up!
Your email address has been recorded with us, you can now get
Latest information from us .
'; // Our message above including the link
$headers = 'From:noreply@example.io' . "\r\n"; // Set from
headers
mail($to, $subject, $message, $headers); // Send our email
header('Location: success.html');
}
}
$conn->close();
?>
答案 1 :(得分:0)