Excel formula 用于比较和验证值的电子表格/Excel数组函数
我得到了这个数据集Excel formula 用于比较和验证值的电子表格/Excel数组函数,excel-formula,google-sheets,Excel Formula,Google Sheets,我得到了这个数据集 ID fruit price 1 apple 10 2 apple 50 3 apple 100 4 banana 10 5 banana 20 6 banana 50 我想要一套forumla,它可以遍历每一行并输出每一行中价格最高的水果 在PHP中,我会这样做 foreach $array as $row{ if in_array( $row[fruit] ){ /* check if current $row
ID fruit price
1 apple 10
2 apple 50
3 apple 100
4 banana 10
5 banana 20
6 banana 50
我想要一套forumla,它可以遍历每一行并输出每一行中价格最高的水果
在PHP中,我会这样做
foreach $array as $row{
if in_array( $row[fruit] ){
/* check if current $row[price] for current $row[fruit] is larger than existing post. If yes replace */
}
}
如何在Google电子表格/Excel中实现这一点?您可以在Excel中使用数组公式实现这一点(因此您可以使用Ctrl+Shift+enter键输入)…
如果您的水果在
B
中,而价格在C
中,则D2
中的数组公式将为
=C2=MAX(IF($B$2:$B$7=B2,$C$2:$C$7,0))
这将为您提供TRUE
或FALSE
,了解该行水果的价格是否最高
如果水果数组(第2行到第7行-您可以使其变长)与当前水果相同,则执行,如果相同,则返回价格,否则返回0。然后我们得到MAX
,并将其与当前行的价格进行比较
祝你好运 我制作了一个快速的VBA宏,您可以在excel中使用它来输出价格最高的水果
宏将水果表转换为一个数组,然后在数组中循环查找具有最高值的水果,然后将其输出到工作表。此宏依赖于位于A列到C列中的水果表
Sub getMaxPriceFruit()
'put data table into an array
Dim dataTableArray() As Variant
dataTableArray = Range("A2:C" & Cells(Rows.Count, "A").End(xlUp).Row)
'loop through the aray looking for the largest value
'capture array index in variable when largest is found
Dim maxArray(1 To 1, 1 To 3) As Variant
maxArray(1, 1) = 0
maxArray(1, 2) = ""
maxArray(1, 3) = 0
Dim i As Long
For i = 1 To UBound(dataTableArray)
If dataTableArray(i, 3) > maxArray(1, 3) Then
maxArray(1, 1) = dataTableArray(i, 1)
maxArray(1, 2) = dataTableArray(i, 2)
maxArray(1, 3) = dataTableArray(i, 3)
End If
Next i
'output the fruit with the max value
Range("F2").Value = maxArray(1, 1)
Range("G2").Value = maxArray(1, 2)
Range("H2").Value = maxArray(1, 3)
End Sub
此脚本的限制是,如果有两个最大值相等的水果,则列表中具有该值的第一个水果将被选为赢家。如果您希望额外的代码输出多个水果,如果它们具有我可以提供的相同的最大值,但简单地说,您可以使用maxArray数组捕获所有排名靠前的水果,然后循环通过此数组一次性输出它们
希望有帮助 一个数据透视表,其中包含水果
行和价格
值(汇总方式:MAX)。您的数据集是否按水果和价格的升序排序?我认为答案不错。在所示的特定案例中,数据有序,每个水果都有一个单一的最高价格,您可以将=B2B3放入D2中,但船长的回答更一般。@Joseph为您做了这项工作吗?请随意接受答案!