Разделить столбец на основе другого значения столбца для подготовки данных для одностороннего Anova

Я хотел бы разделить значения в одном столбце на основе значений в другом столбце, как в этом примере:

ГруппаЦенить
Группа 17
Группа 14
Группа 19
Группа 21
Группа 28
Группа 21
Группа 25
Группа 23
Группа 36
Группа 310
Группа 35
Группа 34

Желаемый результат:

Группа 1Группа 2Группа 3
716
4810
915
54
3

У меня есть таблица с большим количеством данных, и я хотел бы выполнить для нее One-way Anova, но AFAIK Anova требует наличия данных в сгруппированных смежных столбцах. Есть ли способ добиться этого автоматическим способом? Если возможно, имея возможность выбирать столбцы группы и значения, когда у меня их больше двух.

Спасибо!

2 ответа
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, а не в предыдущих версиях

  • Спасибо. К сожалению, мне нужно что-то выполнимое в Excel 2019

    — Lc_Nnn
    вчерашний день

Решение 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"

Данные и результаты

введите описание изображения здесь

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *