我有一些看起来像这样的数据:
Count Id Test1 Test2 Test3
2417 118006353 0050167 0050380 0050390
1445 118016614 0070015 0070105
1426 118013670 0050167 0050380 0050390
978 118005505 0050995 0098392 0099359
757 118002779 0050167
735 118001930 0050380 0050390 0050771
694 118005514 0050380 0050390
683 117972784 0050557
636 118017677 0056009 0097709
601 118008066 0070015
我需要将其转换为如下所示:
Count Id Test
2417 118006353 0050167
2417 118006353 0050380
2417 118006353 0050390
1445 118016614 0070015
1445 118016614 0070105
1426 118013670 0050167
1426 118013670 0050380
1426 118013670 0050390
978 118005505 0050995
978 118005505 0098392
978 118005505 0099359
757 118002779 0050167
735 118001930 0050380
735 118001930 0050390
735 118001930 0050771
694 118005514 0050380
694 118005514 0050390
683 117972784 0050557
636 118017677 0056009
636 118017677 0097709
601 118008066 0070015
这是我在excel中可以做的事情吗? (或任何其他工具?)
答案 0 :(得分:1)
如果你真的只有三列(或其他一些合理的数字),我会制作三组不同的数据:Count, ID, Test1
,Count, ID, Test2
和Count, ID, Test3
(制作这些数据) ,只需复制并粘贴原始数据,然后删除其中两列)。现在将这三组中的每一组复制并粘贴到彼此之下。然后在D列中使用此公式:
=if(C1="",0,1)
然后只过滤并删除D列中的值为0的所有行。按您的意愿排序。
答案 1 :(得分:1)
您可以尝试SQL查询,如下所示:
SELECT count,ID,Test1 as 'TEST' FROM myTABLE UNION
SELECT count,ID,Test2 FROM myTABLE UNION
SELECT count,ID,Test3 FROM myTABLE
ORDER BY count,ID,TEST
答案 2 :(得分:1)
也许这个?工会应该在SQL Server中获得结果......
SELECT [COUNT], ID, TEST1
FROM TABLE
UNION
SELECT [COUNT], ID, TEST2
FROM TABLE
WHERE TEST2 IS NOT NULL
UNION
SELECT [COUNT], ID, TEST3
FROM TABLE
WHERE TEST3 IS NOT NULL
答案 3 :(得分:1)
您可以使用SQL Server中的UNPIVOT
函数来获取结果:
select [count], id, test
from yourtable
unpivot
(
test
for col in (test1, test2, test3)
) un;
答案 4 :(得分:1)
SELECT *
FROM myTable
UNPIVOT (Test FOR TestX IN (Test1,Test2,Test3)) p