Note: The other languages of the website are Google-translated. Back to English

 ¿Cómo transponer celdas en una columna en función de valores únicos en otra columna?

Supongamos que tiene un rango de datos que contiene dos columnas, ahora desea transponer celdas en una columna a filas horizontales basadas en valores únicos en otra columna para obtener el siguiente resultado. ¿Tiene alguna buena idea para resolver este problema en Excel?

doc transponer valores únicos 1

Transponer celdas en una columna según valores únicos con fórmulas

Transponer celdas en una columna según valores únicos con código VBA

Transponer celdas en una columna según valores únicos con Kutools para Excel


Con las siguientes fórmulas de matriz, puede extraer los valores únicos y transponer sus datos correspondientes en filas horizontales, haga lo siguiente:

1. Ingrese esta fórmula de matriz: = ÍNDICE ($ A $ 2: $ A $ 16, COINCIDIR (0, CONTAR.SI ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) en una celda en blanco, D2, por ejemplo, y presione Mayús + Ctrl + Entrar claves juntas para obtener el resultado correcto, vea la captura de pantalla:

doc transponer valores únicos 2

Nota:: En la fórmula anterior, A2: A16 es la columna de la que desea enumerar los valores únicos y D1 es la celda sobre esta celda de fórmula.

2. Luego arrastre el controlador de relleno hacia las celdas para extraer todos los valores únicos, vea la captura de pantalla:

doc transponer valores únicos 3

3. Y luego continúe ingresando esta fórmula en la celda E2: =IFERROR(INDEX($B$2:$B$16, MATCH(0, COUNTIF($D2:D2,$B$2:$B$16)+IF($A$2:$A$16<>$D2, 1, 0), 0)), 0)y recuerda presionar Mayús + Ctrl + Entrar claves para obtener el resultado, vea la captura de pantalla:

doc transponer valores únicos 4

Nota:: En la fórmula anterior: B2: B16 son los datos de la columna que desea transponer, A2: A16 es la columna en la que desea transponer los valores según, y D2 contiene el valor único que extrajo en el Paso 1.

4. Luego arrastre el controlador de relleno a la derecha de las celdas en las que desea enumerar los datos transpuestos hasta que muestre 0, vea la captura de pantalla:

doc transponer valores únicos 5

5. Y luego continúe arrastrando el controlador de relleno hasta el rango de celdas para obtener los datos transpuestos como se muestra en la siguiente captura de pantalla:

doc transponer valores únicos 6


Puede ser que las fórmulas sean complejas para que las entienda, aquí, puede ejecutar el siguiente código VBA para obtener el resultado deseado que necesita.

1. Mantenga pulsado el ALT + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Módulo Ventana.

Código de VBA: transponer celdas en una columna según valores únicos en otra columna:

Sub transposeunique()
'updateby Extendoffice
    Dim xLRow As Long
    Dim i As Long
    Dim xCrit As String
    Dim xCol  As New Collection
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    Dim xCount As Long
    Dim xVRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("please select data range(only two columns):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count <> 2) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range is only one area with two columns ", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xLRow = xRg.Rows.Count
    For i = 2 To xLRow
        xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value
    Next
    Application.ScreenUpdating = False
    For i = 1 To xCol.Count
        xCrit = xCol.Item(i)
        xOutRg.Offset(i, 0) = xCrit
        xRg.AutoFilter Field:=1, Criteria1:=xCrit
        Set xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)
        If xVRg.Count > xCount Then xCount = xVRg.Count
        xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible).Copy
        xOutRg.Offset(i, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Application.CutCopyMode = False
    Next
    xOutRg = xRg.Cells(1, 1)
    xOutRg.Offset(0, 1).Resize(1, xCount) = xRg.Cells(1, 2)
    xRg.Rows(1).Copy
    xOutRg.Resize(1, xCount + 1).PasteSpecial Paste:=xlPasteFormats
    xRg.AutoFilter
    Application.ScreenUpdating = True
End Sub

3. Entonces presione F5 para ejecutar este código, y aparecerá un cuadro emergente para recordarle que seleccione el rango de datos que desea usar, vea la captura de pantalla:

doc transponer valores únicos 7

4. Y luego haz clic OK , aparecerá otro cuadro de aviso para recordarle que seleccione una celda para poner el resultado, vea la captura de pantalla:

doc transponer valores únicos 8

6. Hacer clic OK , y los datos en la columna B se han transpuesto en función de valores únicos en la columna A, vea la captura de pantalla:

doc transponer valores únicos 9


Si tiene Kutools for Excel, combinando el Filas combinadas avanzadas y Células partidas utilidades, puede finalizar rápidamente esta tarea sin fórmulas ni códigos.

Kutools for Excel : con más de 300 prácticos complementos de Excel, prueba gratuita y sin límite en 30 días.

Después de instalar Kutools for Excel, haga lo siguiente:

1. Seleccione el rango de datos que desea utilizar. (Si desea conservar los datos originales, primero copie y pegue los datos en otra ubicación).

2. Luego haga clic Kutools > Fusionar y dividir > Filas combinadas avanzadas, ver captura de pantalla:

3. En la Combinar filas según la columna cuadro de diálogo, realice las siguientes operaciones:

(1.) Haga clic en el nombre de la columna en la que desea transponer los datos y seleccione Clave primaria;

(2.) Haga clic en otra columna que desee transponer y haga clic en Combinar luego elija un separador para separar los datos combinados, como espacio, coma, punto y coma.

doc transponer valores únicos 11

4. Luego haga clic Ok botón, los datos en la columna B se han combinado en una celda basada en la columna A, vea la captura de pantalla:

doc transponer valores únicos 12

5. Y luego seleccione las celdas combinadas y haga clic en Kutools > Fusionar y dividir > Células partidas, ver captura de pantalla:

6. En la Células partidas cuadro de diálogo, seleccione Dividir en columnas bajo el Tipo opción, y luego elija el separador que separa sus datos combinados, vea la captura de pantalla:

doc transponer valores únicos 14 14

7. Luego haga clic Ok y seleccione una celda para poner el resultado dividido en el cuadro de diálogo emergente, vea la captura de pantalla:

doc transponer valores únicos 15

8. Hacer clic OK, y obtendrá el resultado que necesite. Ver captura de pantalla:

doc transponer valores únicos 16

¡Descargue y pruebe Kutools para Excel ahora!


Kutools for Excel: con más de 300 prácticos complementos de Excel, prueba gratuita y sin límite en 30 días. ¡Descarga y prueba gratis ahora!

Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (56)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
¿Cómo iría en la dirección opuesta? ¿De múltiples columnas a una sola columna? ¡Gracias por adelantado! Tim
Este comentario fue minimizado por el moderador en el sitio
Esto fue fantástico. Tenía un Excel con alrededor de 2000 valores únicos en la fila A y no podría haber realizado este ejercicio sin su ayuda. Muchas muchas gracias.
Este comentario fue minimizado por el moderador en el sitio
El primer paso en sí falla = ÍNDICE ($ A $ 2: $ A $ 16, COINCIDIR (0, CONTAR. SI ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) da error Valor no disponible
Este comentario fue minimizado por el moderador en el sitio
Solo quiero hacer lo contrario. Como si ya tuviera el resultado final y quisiera lograr el primer paso.
Este comentario fue minimizado por el moderador en el sitio
Estoy buscando la misma cosa
Este comentario fue minimizado por el moderador en el sitio
¿Encontraste alguna solución para el escenario opuesto? ¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Quiero hacer lo contrario también. ¿Alguna solución, caballeros?
Este comentario fue minimizado por el moderador en el sitio
Hola chicos,
Para obtener el resultado opuesto según el ejemplo de este artículo, puede aplicar el siguiente código VBA: (Nota: al seleccionar el rango de datos que desea transponer, excluya la fila del encabezado)

SubtransponerUnique_2()
Dim xLRow, xLCount como largo
Dim xRg como rango
Dim xOutRg como rango
Dim xObjRRg como rango
Dim xTxt como cadena
Atenuar xCuenta siempre
Dim xVRg como rango
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Establezca xRg = Application.InputBox ("seleccione el rango de datos:", "Kutools para Excel", xTxt, , , , , 8)
Establecer xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Si xRg no es nada, salga de Sub
Si (xRg.Rows.count < 2) O _
(xRg.Areas.count > 1) Entonces
MsgBox "Selección no válida", , "Kutools para Excel"
Exit Sub
Si terminar
Establezca xOutRg = Application.InputBox ("seleccione el rango de salida (especifique una celda):", "Kutools para Excel", xTxt, , , , 8)
Si xOutRg no es nada, salga de Sub
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
Para xLRow = 1 Para xRg.Rows.count
Establezca xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copiar
xoUtrg.OffSet (, 1). Pastel de Pastespecial: = XlPasteAll, Operación: = Xlnone, Skipblanks: = False, Transpose: = Verdadero
Application.CutCopyMode = False
Range(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Valor = xRg.Cells(xLRow, 1).Valor
Establecer xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Siguiente
Application.ScreenUpdating = True
End Sub
Este comentario fue minimizado por el moderador en el sitio
Cómo hacer la transposición si la columna B no tiene valores únicos pero aún necesita esos valores
KTE 100
KTE 100
Suponiendo que son dos transacciones diferentes
Este comentario fue minimizado por el moderador en el sitio
Hola Didin,

¿Puede dar su problema más claro o detallado?
Puede insertar una captura de pantalla de ejemplo para su problema.
¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola,
¿Podría ayudarme con el siguiente requisito?
Orden de producto
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
Rendimiento esperado
Producto ----- pedido ----- pedido ------ pedido
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







Este comentario fue minimizado por el moderador en el sitio
Yo también necesito lo mismo. Quiero mostrar 100 dos veces si hay datos
Este comentario fue minimizado por el moderador en el sitio
¿Puedes sugerir una fórmula para eso?
Este comentario fue minimizado por el moderador en el sitio
¿Alguna vez obtuviste una respuesta/resolución a este desafío? yo tengo el mismo
Este comentario fue minimizado por el moderador en el sitio
¿Hay alguna manera de hacer esto a la inversa? Es decir, datos en filas de longitud variable y, por lo tanto, clasificarlos en dos columnas. Ver adjunto.
Este comentario fue minimizado por el moderador en el sitio
También quiero transponer valores duplicados (todos los valores: únicos + duplicados) y no solo valores únicos. ¿Puedes dar la fórmula para eso también?
Este comentario fue minimizado por el moderador en el sitio
necesito lo mismo
Este comentario fue minimizado por el moderador en el sitio
¿Alguna vez obtuviste una respuesta/resolución a este desafío? yo tengo el mismo
Este comentario fue minimizado por el moderador en el sitio
Con la siguiente fórmula:

=IFERROR(INDEX($B$2:$B$45, MATCH(0, COUNTIF($D2:D2,$B$2:$B$45)+IF($A$2:$A$10<>$D2, 1, 0), 0)), 0)

¿Cómo puedo transponer los datos usando coincidencias aproximadas? Digamos, quiero extraer todos los valores de la Columna B que coincidan con los primeros 9 caracteres/dígitos de la Columna A. La columna B tiene 11 caracteres mientras que la A solo 9. ¡gracias!
Este comentario fue minimizado por el moderador en el sitio
Necesito hacer exactamente lo contrario de esto. Tengo muchas columnas asociadas con una identificación de fila y quiero pegarlas en dos columnas
por ejemplo tengo
ID de fila, valor, valor1, valor2, valor3, valor4, valor..225
100, delfín, 255, 9--, sarah, jameson, ....
179, enrutador, inundación, jason, 89, nariz



Quiero que se vea así
100, delfín
100, 255
100, 9--
100, Sara
100, jameson
179, enrutador
179, inundación
179, jason
179, 89
179, nariz
Este comentario fue minimizado por el moderador en el sitio
Hola, Dave,
Para resolver su problema, utilice el siguiente código VBA: (Nota: cuando seleccione el rango de datos que desea transponer, excluya la fila del encabezado).

SubtransponerUnique_2()
Dim xLRow, xLCount como largo
Dim xRg como rango
Dim xOutRg como rango
Dim xObjRRg como rango
Dim xTxt como cadena
Atenuar xCuenta siempre
Dim xVRg como rango
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Establezca xRg = Application.InputBox ("seleccione el rango de datos:", "Kutools para Excel", xTxt, , , , , 8)
Establecer xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Si xRg no es nada, salga de Sub
Si (xRg.Rows.count < 2) O _
(xRg.Areas.count > 1) Entonces
MsgBox "Selección no válida", , "Kutools para Excel"
Exit Sub
Si terminar
Establezca xOutRg = Application.InputBox ("seleccione el rango de salida (especifique una celda):", "Kutools para Excel", xTxt, , , , 8)
Si xOutRg no es nada, salga de Sub
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
Para xLRow = 1 Para xRg.Rows.count
Establezca xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copiar
xoUtrg.OffSet (, 1). Pastel de Pastespecial: = XlPasteAll, Operación: = Xlnone, Skipblanks: = False, Transpose: = Verdadero
Application.CutCopyMode = False
Range(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Valor = xRg.Cells(xLRow, 1).Valor
Establecer xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Siguiente
Application.ScreenUpdating = True
End Sub
Este comentario fue minimizado por el moderador en el sitio
Gracias, funciona perfectamente, ¡me ahorraste 2 días! :)
Este comentario fue minimizado por el moderador en el sitio
Hola Skyyang,
por favor comparta el código para 3 columnas. A continuación se muestra el ejemplo:
Quiero los datos como: yogesh@gmail.com comunidad 1 vista solo comunidad 2 vista solo ...... goyal@gmail.com comunidad 1 vista solo comunidad 2 vista solo ........

Este comentario fue minimizado por el moderador en el sitio
Hola ygoyal,

Para resolver su problema, aplique el siguiente código:

SubtransponerUnique_2()

Dim xLRow, xLCount como largo

Dim xRg como rango

Dim xOutRg como rango

Dim xObjRRg como rango

Dim xTxt como cadena

Atenuar xCuenta siempre

Dim xVRg como rango

Dim xC, xI, xI1, xI2 como entero

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Establezca xRg = Application.InputBox ("seleccione el rango de datos:", "Kutools para Excel", xTxt, , , , , 8)

Establecer xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Si xRg no es nada, salga de Sub

Si (xRg.Rows.Count < 2) O _

(xRg.Areas.Count > 1) Entonces

MsgBox "Selección no válida", , "Kutools para Excel"

Exit Sub

Si terminar

Establezca xOutRg = Application.InputBox ("seleccione el rango de salida (especifique una celda):", "Kutools para Excel", xTxt, , , , 8)

Si xOutRg no es nada, salga de Sub

Application.ScreenUpdating = False

xLCount = xRg.Columns.Count

Para xLRow = 1 Para xRg.Rows.Count

Establezca xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Cuenta Mod 2)

Si xC <> 0 Entonces

xC = Int(xObjRRg.Cuenta / 2) + 1

otro

xC = Int(xObjRRg.Cuenta / 2)

Si terminar

xI1 = 1

xI2 = 2

Para xI = 1 Hasta xC

Rango(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Copiar

xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

xOutRg.Value = xRg.Cells(xLRow, 1).Valor

Establecer xOutRg = xOutRg.Offset(RowOffset:=1)

xI1 = xI1 + (2)

xI2 = xI2 + (2)

Siguiente

Siguiente

Application.ScreenUpdating = True

End Sub



Por favor, inténtalo, ¡espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
Hola hermano, el código funciona al revés. Consulte la captura de pantalla adjunta del requisito. Los datos disponibles son por filas y desea transponer los datos en columnas.
Este comentario fue minimizado por el moderador en el sitio
Hola ygoyal,
Perdón por responder tarde, aplique el siguiente código, ¡pruébelo!

Subtransposeunique()

'Actualizar por Extendoffice

Atenuar fila xL mientras dure

Dim i As Long

Dim xCrit como cadena

Dim xCol como nueva colección

Dim xRg como rango

Dim xOutRg como rango

Dim xTxt como cadena

Atenuar xCuenta siempre

Dim xVRg como rango

Dim xFRg, xSRg, xCRg como rango

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Establezca xRg = Application.InputBox ("seleccione el rango de datos (solo 3 columnas):", "Kutools para Excel", xTxt, , , , , 8)

Establecer xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Si xRg no es nada, salga de Sub

Si (xRg.Columns.Count <> 3) O _

(xRg.Areas.Count > 1) Entonces

MsgBox "el rango usado es solo un área con dos columnas", "Kutools for Excel"

Exit Sub

Si terminar

Establezca xOutRg = Application.InputBox ("seleccione el rango de salida (especifique una celda):", "Kutools para Excel", xTxt, , , , 8)

Si xOutRg no es nada, salga de Sub

Establecer xOutRg = xOutRg.Range(1)

xLRow = xRg.Rows.Count

Para i = 2 Hasta xLFila

xCol.Add xRg.Cells(i, 1).Valor, xRg.Cells(i, 1).Valor

Siguiente

Application.ScreenUpdating = False

Application.ScreenUpdating = False

Para i = 1 Hasta xCol.Count

xCrit = xCol.Item(i)

xOutRg.Offset(i, 0) = xCrit

xRg.AutoFilter Campo:=1, Criterio1:=xCrit

Establecer xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Si xVRg.Count > xCount Entonces xCount = xVRg.Count

Establecer xSRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Establecer xCRg = xOutRg.Offset(i, 1)

Para cada xFRg en xSRg

xFRg.Copiar

xCRg.PasteSpecial

xRg.Rango("B1").Copiar

xCRg.Offset(-(i), 0).PasteSpecial

xFRg.Desplazamiento(0, 1).Copiar

Establecer xCRg = xCRg.Offset(0, 1)

xCRg.PasteSpecial

xRg.Rango("c1").Copiar

xCRg.Offset(-(i), 0).PasteSpecial

Establecer xCRg = xCRg.Offset(0, 1)

Siguiente

Application.CutCopyMode = False

Siguiente

xRg.Item(1).Copiar

xOutRg.PasteSpecial

xRg.Autofiltro

Application.ScreenUpdating = True

End Sub
Este comentario fue minimizado por el moderador en el sitio
Hola hermano, intenté usar este código, pero Excel se bloquea cuando ejecuto este código y no pude ver el resultado del código anterior. por favor sugiera qué hacer en este caso.
Este comentario fue minimizado por el moderador en el sitio
Hola,
El código funciona bien en mi libro de trabajo, ¿qué versión de Excel usas?
Este comentario fue minimizado por el moderador en el sitio
MS Excel 2016
Este comentario fue minimizado por el moderador en el sitio
El código también funciona bien en mi Excel 2016, pruébelo primero con algunos datos de rango pequeño.
Este comentario fue minimizado por el moderador en el sitio
Probé en 160 registros, pero todavía había duplicados.
Este comentario fue minimizado por el moderador en el sitio
Hola Skyyang, Me encanta esto, ¿hay alguna posibilidad de que puedas hacerlo funcionar para cuatro columnas? de nuevo, simplemente usando los dos primeros como comparador, o mejor aún, ¿la capacidad de elegir el número de columnas antes de seleccionarlas? Eché un vistazo a tu guión, no tendría ni idea de cómo lograr esto...
Este comentario fue minimizado por el moderador en el sitio
Hola Skyyang, Me encanta esto, ¿hay alguna posibilidad de que puedas hacerlo funcionar para cuatro columnas? de nuevo, simplemente usando los dos primeros como comparador, o mejor aún, ¿la capacidad de elegir el número de columnas antes de seleccionarlas? Eché un vistazo a tu guión, no tendría ni idea de cómo lograr esto...
Este comentario fue minimizado por el moderador en el sitio
Hermano, pls ayuda en esto.
Este comentario fue minimizado por el moderador en el sitio
Hola hermano sigo esperando tu ayuda
Este comentario fue minimizado por el moderador en el sitio
Este comentario fue minimizado por el moderador en el sitio
Igual que Dave, necesito hacer exactamente lo contrario de esto. Tabla 2 para transponer a la Tabla 1. Tabla de entrada 2, Tabla de salida 1.
Este comentario fue minimizado por el moderador en el sitio
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) funcionó para mí para transponer los valores únicos de una columna en una nueva columna PERO... ¿hay alguna manera de anunciar en una función de clasificación para que la nueva columna creada se transponga en orden ascendente?


¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Se necesita obtener el mismo resultado, pero las columnas predefinidas que se seleccionarán serían ($A, $B) y se necesita la posición de la columna de salida en $D$1.
si alguien tiene alguna idea seria de gran ayuda!!!!
Este comentario fue minimizado por el moderador en el sitio
Hola, ¿podemos agregar cada fila y dar el resultado en una columna, con la funcionalidad anterior?
Este comentario fue minimizado por el moderador en el sitio
Así que estoy trabajando para una empresa. Tenemos columnas para información como Apellido, nombre, rango, sección, número de teléfono, dirección. ¿Hay alguna manera de que pueda usar una fórmula similar para transponer toda la fila de información a una columna por nombres?
Este comentario fue minimizado por el moderador en el sitio
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) funcionó para mí para transponer los valores únicos de una columna en una nueva columna PERO ... ¿hay alguna manera de obtener todos los valores en la columna B para transponerlos como se indica a continuación?

Producto Orden Fecha Producto Orden Orden Orden Orden Orden Orden Orden
KTE 100 3/3/2019 KTE 100 100 100 200 100 150 100
KTO 150 3/3/2019 KTO 150 100 200 100 150 200
KTE 100 3/4/2019 BOT 150 100 200 150 100 200
KTO 100 3/4/2019 COD 200 150 100 150
KTO 200 3/5/2019
KTE 100 3/5/2019
BOT 150 3/5/2019
BOT 100 3/6/2019
KTO 100 3/6/2019
KTE 200 3/6/2019
BOT 200 3/7/2019
DQO 200 3/7/2019
KTE 100 3/7/2019
KTO 150 3/7/2019
BOT 150 3/8/2019
KTE 150 3/8/2019
DQO 150 3/8/2019
BOT 100 3/9/2019
BOT 200 3/10/2019
DQO 100 3/10/2019
KTO 200 3/10/2019
DQO 150 3/11/2019
KTE 100 3/11/2019
Este comentario fue minimizado por el moderador en el sitio
La macro no funcionó. Simplemente copió el contenido en la celda A1.
Este comentario fue minimizado por el moderador en el sitio
Tengo un conjunto de datos en las columnas A (Identificación única) - E. Cada fila tiene datos basados ​​en el número de identificación, hay varias filas para cada número de identificación, pero quiero una fila por número de identificación con todos los demás datos en las columnas ( sería un mínimo de 5 columnas y un máximo de 25 dependiendo de cuántos tenga cada ID único). Encontré un código pero solo funciona para dos columnas. Tuve que concatenar las cuatro columnas (sin incluir la ID) y luego delimitar después de ejecutar la macro (mucho trabajo). Para 15,000 XNUMX filas de datos, esto consume más tiempo. ¿Hay una macro de columna sin fin que funcione? ¡Gracias de antemano a todos por su ayuda!
CÓDIGO DE ID ST CÓDIGO # FECHA
Este comentario fue minimizado por el moderador en el sitio
Tengo un conjunto de datos que tiene varias ID en la columna A y tiene datos conectados en la columna B. Usé la fórmula anterior y la modifiqué un poco para transponer las celdas de la columna B en una fila según la ID única. vinculado a él en la columna A. La fórmula utilizada para identificar las ID únicas es: = ÍNDICE ($ A $ 2: $ A $ 13409, COINCIDIR (0, CONTAR. SI ($ D $ 1: $ D1, $ A $ 2: $ A $ 13409), 0)). La fórmula utilizada para realizar la transposición es: =SI.ERROR(ÍNDICE($B$2:$B$13409, COINCIDIR(0, SI($A$2:$A$13409<>$D2, 1, 0)+CONTAR.SI($D2: D2,$B$2:$B$13409), 0)), "N/A"). Ambos dados en el artículo, solo ligeramente alterados.

El problema es que mi conjunto de datos en la columna B tiene duplicados, que a veces aparecen uno tras otro, y necesito que todos los valores de la columna se presenten en las filas.

La imagen adjunta es lo que me gustaría que mostrara la tabla (este es un tamaño de muestra pequeño, el conjunto de datos verdadero tiene más de 13,000 entradas). Lo que sucede ahora es que cuando se encuentra un valor repetido, no lo contará.
es decir, la fila 9 para ID 11980 ahora solo muestra 0 -31.79 -0.19 -0.74 N/AN/A .... cuando lo que necesito que muestre es 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A . ...

¿Hay alguna manera de evitar este problema y resolverlo?

Gracias de antemano!
Este comentario fue minimizado por el moderador en el sitio
¿Alguna vez obtuviste una respuesta/resolución a este desafío? yo tengo el mismo
Este comentario fue minimizado por el moderador en el sitio
Tengo un conjunto de datos que tiene 3 columnas que se presentan a continuación:



Columna A Columna B Columna C



País1 Año1 Valor1

País1 Año2 Valor2

País1 Año3 Valor3,



País2 Año1 Valor1

País2 Año3 Valor3,

...........



Necesito combinar estas 3 columnas en una tabla como esta:

Año1 Año2 Año3 ............................. AñoX



País1 Valor1 Valor2 Valor3

País2 Valor1 #Valor faltante3

.....
.....
.....

PaísX Valorx ..................





El problema al que me enfrento es que para algunos datos en la columna A no tengo valores para cada año solo para algunos (por ejemplo, el país 2 tiene valores faltantes para el año 2)





¿Hay alguna manera de evitar este problema y resolverlo?



Gracias de antemano!
Este comentario fue minimizado por el moderador en el sitio
¿Puede compartir el código si hay 2 columnas para copiar en lugar de 1? A continuación se muestra el ejemplo.
No hay comentarios publicados aquí todavía
Ver más
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Siganos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL