Excel formula 在excel中返回多个逗号分隔的列标题值
我的数据集: 我对数据进行了这样的排序,但是,我希望有一个单元格,可以像下面的任何选项一样显示数据。我已经按我的喜好顺序列出了它们Excel formula 在excel中返回多个逗号分隔的列标题值,excel-formula,Excel Formula,我的数据集: 我对数据进行了这样的排序,但是,我希望有一个单元格,可以像下面的任何选项一样显示数据。我已经按我的喜好顺序列出了它们 UT(4)、CO(2)、NY(1)——基本上是列标题,括号中的值按降序排列(最理想) UT、CO、NY——同样的想法,没有价值计数,仍然降低顺序 CO、NY、UT——基本上只是一个列表 到目前为止,我有两个只返回第一列的公式 公式1: =IF(COUNTA($U2:$BS2)=0,"",INDEX($U$1:$BS$1,MATCH(FALSE,INDEX(ISBL
=IF(COUNTA($U2:$BS2)=0,"",INDEX($U$1:$BS$1,MATCH(FALSE,INDEX(ISBLANK($U2:$BS2),0),0)))
=IF(COUNTA($U2:$BS2)=0,"",INDEX($U$1:$BS$1,MATCH(TRUE,INDEX($U2:$BS2<>"",0),0)))
公式2:
=IF(COUNTA($U2:$BS2)=0,"",INDEX($U$1:$BS$1,MATCH(FALSE,INDEX(ISBLANK($U2:$BS2),0),0)))
=IF(COUNTA($U2:$BS2)=0,"",INDEX($U$1:$BS$1,MATCH(TRUE,INDEX($U2:$BS2<>"",0),0)))
=IF(COUNTA($U2:$BS2)=0,”,索引($U$1:$BS$1,匹配(TRUE,索引($U2:$BS2“”,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
函数状态排序(范围作为范围)
最大值=0
'查找行中的最大值
对于范围内的每个单元格
如果cell.Value>maxValue,则maxValue=cell.Value
下一个细胞
StateSort=“”
'从最大值向后循环到0
当maxValue>=0时执行此操作
对于范围内的每个单元格
如果单元格的.Value为“”,则
如果cell.Value=maxValue,则
'如果您的州标签不在第1行中,请更改
'单元格(,cell.Column)下面的行编号部分
StateSort=StateSort&Cells(1,cell.Column)和“(&cell.Value&”)
如果结束
如果结束
下一个细胞
maxValue=maxValue-1
环
端函数
使用方法是在底部的“工作表”选项卡上单击鼠标右键,然后单击“查看代码”,这将打开代码编辑器。在菜单中,转至插入>模块。然后在空白空间中粘贴此代码并保存工作簿(如宏启用,以便脚本运行)。
现在您可以使用=StateSort()
(传入值的范围),它将格式化您的数据
旧答案(留下作为按行排序的示例) 如果您转到排序>选项…>从左到右排序 所以你可以把每个州的总和放在一行。然后您只需按总和排序,并使用
CONCAT
函数使标题看起来正确。例如:=CONCAT(“UT(“,A4,”)”)
其中A4是包含状态总和的单元格,将为您提供UT(4)
完整示例:
以下是包含总和行和标签行的初始数据:
在这里,您可以看到第7行和第8行中的公式:
然后选择要排序的区域并转到排序>选项。。。从左到右排序。选择要排序的第7行(在本例中):
以及最终排序的数据:
这个例子实际上是按升序排序的,所以在倒数第二张图中,您希望“顺序”是“从大到小”才能按降序排序。您好,好主意,谢谢您的回复。我不知道您可以更改排序轴,但是结果将不同于我所希望的。不是你的错,是我的错,没有更好的描述。我的数据是在每一行都是一条单独记录的情况下设置的——我不会试图通过列来累加状态,因为那样会累加多条记录。我只是想为我的数据记录显示受影响的状态。谢谢那么4是在UT(4)中吗?这不就是这一栏的总和吗?啊,看了描述我想我明白了。所以你不想把细胞分类,对吧?您希望将数据放在上表中,但在一个单独的单元格中,您希望以排序方式组合这些数据?我认为您将寻找一种代码解决方案(而不仅仅是单元格中的公式)。我以后也许可以试试。