Я хотел бы разделить значения в одном столбце на основе значений в другом столбце, как в этом примере:
Группа | Ценить |
---|---|
Группа 1 | 7 |
Группа 1 | 4 |
Группа 1 | 9 |
Группа 2 | 1 |
Группа 2 | 8 |
Группа 2 | 1 |
Группа 2 | 5 |
Группа 2 | 3 |
Группа 3 | 6 |
Группа 3 | 10 |
Группа 3 | 5 |
Группа 3 | 4 |
Желаемый результат:
Группа 1 | Группа 2 | Группа 3 |
---|---|---|
7 | 1 | 6 |
4 | 8 | 10 |
9 | 1 | 5 |
5 | 4 | |
3 |
У меня есть таблица с большим количеством данных, и я хотел бы выполнить для нее One-way Anova, но AFAIK Anova требует наличия данных в сгруппированных смежных столбцах. Есть ли способ добиться этого автоматическим способом? Если возможно, имея возможность выбирать столбцы группы и значения, когда у меня их больше двух.
Спасибо!
2 ответа
Предположим, ваши данные находятся в столбцах A и B на листе 1:
введите эту формулу в A1 на новом листе:
=TRANSPOSE (UNIQUE(FILTER(Sheet1!A:A, ROW(Sheet1!A:A) <>1))
и эта формула в A2:
=FILTER(Sheet1$B:$B,sheet1!$A:$A=A$1)
При необходимости скопируйте его в дополнительные столбцы
Это будет работать в Office 365, а не в предыдущих версиях
Решение Power Query с учетом ваших данных
Если вы будете делать это повторно, с разным количеством значений в группах, возможно, придется отредактировать M-код, если вы не получите ожидаемых результатов.
- Получить данные => из таблицы / диапазона
- Группа по
Group
ОперацияAll Rows
- Добавить столбец => Пользовательский столбец => Формула:
=Table.Column([Grouped],"Value")
Щелкните двойную стрелку вверху настраиваемого столбца и
Extract Values
используя точку с запятой в качестве разделителяРазделить настраиваемый столбец по разделителю (точка с запятой)
Переставьте таблицу и используйте первую строку в качестве заголовков
Код M генерируется вышеуказанными шагами:
let
Source = Excel.CurrentWorkbook(){[Name="Table20"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Group", type text}, {"Value", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Group"}, {{"Grouped", each _, type table [Group=nullable text, Value=nullable number]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.Column([Grouped],"Value")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Custom", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),
#"Removed Columns" = Table.RemoveColumns(#"Extracted Values",{"Grouped"}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Removed Columns", "Custom", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Custom.1", "Custom.2", "Custom.3", "Custom.4", "Custom.5"}),
#"Transposed Table" = Table.Transpose(#"Split Column by Delimiter"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"Group 1", Int64.Type}, {"Group 2", Int64.Type}, {"Group 3", Int64.Type}})
in
#"Changed Type1"
Данные и результаты
Спасибо. К сожалению, мне нужно что-то выполнимое в Excel 2019
— Lc_Nnn
вчерашний день