Есть ли функция, где я могу объединить все столбцы A во все столбцы B - PullRequest
1 голос
/ 19 июня 2019

У меня есть ситуация в Excel, где я хочу объединить все значения столбца A со всеми значениями столбца B (где я хочу сохранить все значения B Абсолютный для всех значений столбца A)

Пример: столбец A - 1 2 3 4 5 6 7 8 столбец B - ABCDEFGH

Я хочу получить результат 1A 2A 3A 4A 5A 6A 7A 8A 1B 2B 3B 4B 5B, пока не достигну значения 8H

Я пробовал простую конкатенацию, но очевидно, что это занимает слишком много времени

Было бы полезно, если бы кто-то мог разобраться в этом и предоставить мне формулу, которая поможет мне это исправить.

С уважением

Ответы [ 2 ]

1 голос
/ 19 июня 2019

После твоего поста я понял, что ты на самом деле после.

В ячейку C1 положить:

=IF(ROW()-ROW($C$1)+1>COUNTA(A:A)*COUNTA(B:B),"",INDEX(A:A,INT((ROW()-ROW($C$1))/COUNTA(B:B)+1))&INDEX(B:B,MOD(ROW()-ROW($C$1),COUNTA(B:B))+1))

И перетащите вниз

enter image description here

0 голосов
/ 19 июня 2019

Я нашел это решение, но в VBA.Я надеюсь, что это нормально для вас. Вот как это выглядит на моем Excel

Sub Merge()

Dim NumberLeng As Range
Dim LetterLeng As Range
Dim LastLetter As Long
Dim LastNumber As Long
Dim sht As Worksheet
Dim LastRow As Long
Dim LastMix As Long
Set sht = ActiveSheet
LastLetter = sht.Cells(sht.Rows.Count, "B").End(xlUp).Row 'last letter
LastNumber = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row 'last number

Set NumberRange = sht.Range(Cells(1, 1), Cells(LastNumber, 1)) ' range of numbers
Set LetterRange = sht.Range(Cells(1, 2), Cells(LastLetter, 2)) ' range of letters
X = 0
    For Each Letter In LetterRange

        For Each Number In NumberRange

        Number.Offset(X, 2) = Number & Letter 'Number+Letter

        Next Number

    LastMix = sht.Cells(sht.Rows.Count, "C").End(xlUp).Row 'set new last
    X = LastMix

    Next Letter

End Sub

Если понадобится какая-либо помощь, попросите:)

...