Страницы: 1
RSS
Выборка из первого столбца по слову и цифрам соответствующих значениям городов, Выборка из первого столбца по слову высшего и цифрам 2,5,10,25 суммы количества соответствующей значениям городов
 
Добрый день!

Помогите, пожалуйста, как в первой столбце по слову высшего и цифрам 2,5,10,25 и по горизонтали сумме нескольких городов формулой притянуть
соответствующие значения, как показано в примере?
Заранее спасибо!!!
Изменено: nura28 - 27.06.2017 15:23:38
 
Суммы совпали
=СУММ(МУМНОЖ(--ЕЧИСЛО(ПОИСК("высш";$A$3:$A$10)*ПОИСК(" "&{2;5;10;25}&" ";$A$3:$A$10));{1:1:1:1})*ЕЧИСЛО(ПОИСК($B$1:$K$1;B$12))*$B$3:$K$10)
Алексей М.
 
Спасибо! А если сложить все по одному условию по слову высшего, как формулу прописать?
Изменено: nura28 - 27.06.2017 16:30:46
 
В моем файле появляется окно:
При попытке вычислений ресурсы Excel закончились, поэтому значения этих формул вычислить не удалось.
Изменено: nura28 - 27.06.2017 17:03:56
 
пробуйте так. Формула массива.
=СУММ(ЕЧИСЛО(ПОИСК("высш";$A$3:$A$10))*ЕЧИСЛО(ПОИСК($B$1:$K$1;B$12))*$B$3:$K$10)
Алексей М.
 
АlехМ,
А где в формуле происходит учет кг (2, 5, 10 и 25)
 
Kuzmich,
ПОИСК(" "&{2;5;10;25}&" ";$A$3:$A$10)
Алексей М.
 
Поиск значения 2 найдет его и в строке где 25, разве не так?
Также и для 5
 
Цитата
Kuzmich написал:
разве не так?
не так.
Поиск значений, у которых в начале и конце пробел " "&{2;5;10;25}&" "
Алексей М.
 
АlехМ, формула =СУММ(ЕЧИСЛО(ПОИСК("высш";$A$3:$A$10))*ЕЧИСЛО(ПОИСК($B$1:$K$1;B$12))*$B$3:$K$10)
получается только на определенный интервал... Т.е. при выборе большего количества строк или столбцов она не работает (если в данный момент там пустые ячейки).
Как сделать , чтобы формула работала с большим интервалом $A$3:$A$1000 и $B$1:$AA$1  (в данный момент там пусто, а потом количество заполненных ячеек будет меняться)?  
 
Попробуйте макрос
Код
Sub Muka()
Dim i As Long
Dim j As Integer
Dim n As Integer
Dim FoundCell As Range
Dim FoundTown As Range
Dim FAdr As String
Dim arrTown
Dim ikg As Double
Dim iStr As String
   Range("B13:D14").ClearContents
For j = 2 To 4
  arrTown = Split(Split(Cells(12, j), "=")(1), "+")
     n = 0
   For n = 0 To UBound(arrTown)
    Set FoundTown = Rows(1).Find(arrTown(n), , xlValues, xlWhole)
      Cells(13, j) = Cells(13, j) + Cells(3, FoundTown.Column)
    Set FoundCell = Columns(1).Find("высшего", , xlValues, xlPart)
     If Not FoundCell Is Nothing Then
      FAdr = FoundCell.Address
      Do
        With CreateObject("VBScript.RegExp")
            .Global = True
            .IgnoreCase = True
            .Pattern = "\d+(?= кг)"
            ikg = .Execute(FoundCell)(0)
        End With
          iStr = " 2 , 5 , 10 , 25 "
          'If ikg = 2 Or ikg = 5 Or ikg = 10 Or ikg = 25 Then
          If InStr(1, iStr, " " & ikg & " ") Then
            Cells(14, j) = Cells(14, j) + Cells(FoundCell.Row, FoundTown.Column)
          End If
            Set FoundCell = Columns(1).FindNext(FoundCell)
      Loop While FoundCell.Address <> FAdr
     End If
   Next
  Next
End Sub
 
Kuzmich, спасибо, попробую
 
Цитата
АlехМ написал:
пробуйте так. Формула массива.
=СУММ(ЕЧИСЛО(ПОИСК("высш";$A$3:$A$10))*ЕЧИСЛО(ПОИСК($B$1:$K$1;B$12))*$B$3:$K$10)
АlехМ, ввел Вашу формулу и она выдала результат  вдвое больше чем у nura28, в примере: по Город1 + Город 3+ Город 7 получилось 2 926 кг. вместо 1 463 кг.
 
Цитата
получилось 2 926 кг. вместо 1 463 кг.
А у меня получилось 1420 кг
 
Я значение 1463 кг посчитал ошибкой, так как высший сорт во всех строках кроме последней.
Алексей М.
Страницы: 1
Наверх