У меня есть таблица, заполненная значениями Да и Нет. Мне нужна формула, которая найдет все ячейки со значением «Да» и проиндексирует заголовки строки (Яблоки, Апельсин, Груша) и столбца (Молли, Джо, Сара), используемые для определения ячейки.
Затем возьмите определенную информацию о строке и столбце и поместите ее в два столбца на втором листе.
Я бы хотел что-то, что можно было бы обновить, если бы значения Да или Нет изменились.
Моя таблица Да / Нет на листе 1:
Molly Joe Sarah
Apples Y N Y
Orange N Y N
Pear Y N N
Как я хочу, чтобы это выглядело на листе 2:
Column A Column B Molly Apples Molly Pear Joe Orange Sarah Apple
В качестве альтернативы, Отменить сводку столбцов (Power Query)
Спасибо, что показали мне функцию «обратного поворота». Это работает хорошо. Сможет ли он измениться при изменении данных в моей таблице Y / N или мне придется запускать его каждый раз?










Этот ответ просто расширяет ответ, указанный выше здесь, предоставленный Дейвом Парилло в Как «развернуть» или «повернуть вспять» в Excel?
С помощью powerquery (вкладка Get and Transfom Data Excel 2016, вкладка Powerquery 2013 после установки бесплатного Powerquery добавить в от Microsoft), используя данные из таблицы, где имя таблицы - Table2
Код M:
let
Source = Excel.CurrentWorkbook(){[Name = "Table2"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Molly", type text}, {"Joe", type text}, {"Sarah", type text}}),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Column1"}, "Attribute", "Value"),
#"Filtered Rows" = Table.SelectRows(#"Unpivoted Columns", each ([Value] = "Y")),
#"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"Attribute", "Column1", "Value"}),
#"Removed Columns" = Table.RemoveColumns(#"Reordered Columns",{"Value"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Attribute", "Column A"}, {"Column1", "Column B"}})
in
#"Renamed Columns"
Вход:
Выход:
Процесс:
вы пробовали это?
Sub Main()
Dim cell As Range
Dim sht2 As Worksheet
Set sht2 = Worksheets("Sheet2")
With Worksheets("Sheet1").Range("A1").CurrentRegion
.Replace What: = "Y", Replacement: = "0", LookAt:=xlWhole
For Each cell in .SpecialCells(xlCellTypeConstants, xlNumbers)
sht2.Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = cell.End(xlUp).Value
sht2.Cells(Rows.Count, 2).End(xlUp).Offset(1).Value = cell.End(xlToLeft).Value
Next
.Replace What: = "0", Replacement: = "Y", LookAt:=xlWhole
End With
End Sub
Возможный дубликат Как «развернуть» или «повернуть вспять» в Excel?