Я не совсем уверен, как даже задать этот вопрос. Поэтому я сделал скриншот того, чего я пытаюсь достичь.

Я хотел бы вывести каждую комбинацию столбцов a и b в столбцы d и e. Я видел много примеров того, как объединить a и b в один столбец, но мне нужны они в отдельных столбцах.

Я уверен, что это возможно, я просто не знаю, что даже искать, чтобы начать

2 ответа2

1

Две формулы.

Поместите это в D1 и скопируйте:

=IFERROR(INDEX($A$1:INDEX(A:A,COUNTA(A:A)),INT((ROW(1:1)-1)/COUNTA(B:B))+1),"")

Поместите это в E1 и скопируйте:

=IF(D1<>"",INDEX($B$1:INDEX(B:B,COUNTA(B:B)),MOD((ROW(1:1)-1),COUNTA(B:B))+1),"")

1

используйте инструменты Microsoft Get & Transform для создания декартового произведения двух переменных (или таблицы), если вы используете Excel 2016.
(Для Excel 2010-2013 используйте бесплатную надстройку MS Power Query for Excel.)

Подобно тому, как описано здесь, вы можете

  • импортировать оба столбца в виде отдельной таблицы в Power Query (Excel 2016: данные ленты> Из таблицы)
  • затем добавьте вспомогательный столбец с тем же значением (например, 1),
  • объединить обе таблицы
  • сохранить исходный импортированный столбец

Теоретически вы можете сделать декартово произведение не только из двух столбцов, но и из двух таблиц из нескольких столбцов.

Вот М-код обеих таблиц:

Таблица 2

let
    Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column2", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "CrossColumn", each 1)
in
    #"Added Custom"

Таблица 1

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "CrossColumn", each 1),
    #"Merged Queries" = Table.NestedJoin(#"Added Custom",{"CrossColumn"},Table2,{"CrossColumn"},"Table2",JoinKind.Inner),
    #"Expanded {0}" = Table.ExpandTableColumn(#"Merged Queries", "Table2", {"Column2"}, {"Column2"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded {0}",{"CrossColumn"})
in
    #"Removed Columns"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .