我的数据集:
我有这样的数据排序,但是,我希望有一个单元格显示数据,如下面的任何选项。我按照我的偏好顺序列出了它们。
到目前为止,我有两个公式只返回第一列。
公式1:
=IF(COUNTA($U2:$BS2)=0,"",INDEX($U$1:$BS$1,MATCH(FALSE,INDEX(ISBLANK($U2:$BS2),0),0)))
公式2:
=IF(COUNTA($U2:$BS2)=0,"",INDEX($U$1:$BS$1,MATCH(TRUE,INDEX($U2:$BS2<>"",0),0)))
关于我能做什么的任何建议?
答案 0 :(得分:0)
编辑 - 添加VBA功能以实现此目的,而无需对数据进行排序:
Function StateSort(range As range)
maxValue = 0
'Find max value in row
For Each cell In range
If cell.Value > maxValue Then maxValue = cell.Value
Next cell
StateSort = ""
'Loop backwards from max value down to 0
Do While maxValue >= 0
For Each cell In range
If cell.Value <> "" Then
If cell.Value = maxValue Then
'If your state labels aren't in row 1, change the
'Cells(<row number>, cell.Column) portion below with the row number
StateSort = StateSort & Cells(1, cell.Column) & " (" & cell.Value & "), "
End If
End If
Next cell
maxValue = maxValue - 1
Loop
End Function
使用它的方法是右键单击底部的“工作表”选项卡,然后单击“#34;查看代码”#34;这将打开代码编辑器。在菜单中,转到插入&gt;模块。然后将此代码粘贴到空白处并保存工作簿(启用宏以便脚本运行)。
现在您可以使用=StateSort(<range>)
(传递值范围),它会格式化您的数据。
如果你去Sort&gt;,你可以按行排序。选项......&gt;从左到右排序
因此,您可以将每个州的总和放在一个单独的行中。然后,您只需按总和排序,并使用CONCAT
函数使标题看起来正确。例如:=CONCAT("UT (", A4, ")")
其中A4是具有状态总和的单元格,将为您提供UT (4)
。
完整示例:
这里是带和和行的初始数据:
然后选择您要排序的区域,然后转到排序&gt;选项......从左到右排序。选择第7行(在此示例中)以按:
排序您的最终排序数据: