Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 64089 Skopiuj do schowka Inf w których kolumnach w wierszu znajduje się PRAWDA
Autor Wiadomość
lakra
świeżak


Posty: 2
  Wysłany: 09-02-2019, 23:07   Inf w których kolumnach w wierszu znajduje się PRAWDA

Witam Wszystkich :->

Jestem nową użytkowniczką i mam nadzieję, że mój problem nie okaże się zbyt banalny.

Posiadam bardzo duża bazę danych, gdzie w zależności od tego czy w kolumnie/kolumnach znajduje się wyrażenie PRAWDA, będzie temu wierszu odpowiadała odpowiednia kombinacja.

Od kilku godzin szukam i kombinuję jak uzyskać taką informacje. Jeżeli PRAWDE mam w D2 i F2 to w komórce A2 uzyskać informację 'DF" lub "46". Czyli tak by pokazało mi w których kolumnach znajduje się wyrażenie PRAWDA. Jest mi to później potrzebne, by nadać każdej z nich odpowiedni kod.

Jakby coś było niejasne, to proszę o dodatkowe pytania. Dołączam przykład.

Z góry dziękuję za pomoc!

PRZYKŁAD.xlsx
Pobierz Plik ściągnięto 23 raz(y) 9.04 KB

ID posta: 362287 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1230 razy
Posty: 4264
Wysłany: 10-02-2019, 00:56   Re: Inf w których kolumnach w wierszu znajduje się PRAWDA

lakra napisał/a:
Jeżeli PRAWDE mam w D2 i F2 to w komórce A2 uzyskać informację 'DF" lub "46".

Jeśli w postaci "46" i dane tylko do kolumny I to formuła dla A2
Kod:

=--PODSTAW(MACIERZ.ILOCZYN(JEŻELI.BŁĄD(B2:I2*NR.KOLUMNY(B2:I2);0);{10000000;1000000;100000;10000;1000;100;10;1});0;"")

zakończona Ctrl+Shift+Enter

Jeśli tylko PRAWDA i FAŁSZ bez wartości błędów to formuła normalna
Kod:

=--PODSTAW(MACIERZ.ILOCZYN(B2:I2*NR.KOLUMNY(B2:I2);{10000000;1000000;100000;10000;1000;100;10;1});0;"")
ID posta: 362288 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Wersja: Win Office 2013
Pomógł: 278 razy
Posty: 1521
Wysłany: 10-02-2019, 03:25   

Z błędami:
Kod:
Option Explicit

Private Sub CommandButton1_Click()
Dim i&, j%, d&, str As String, str1 As String

On Error Resume Next

d = Cells(Rows.Count, "B").End(xlUp).Row

For i = 2 To d
    str = ""
    str1 = ""
    For j = 2 To 9
        If Not IsError(Cells(i, j)) Then
            If (Cells(i, j).Value) = True Then
                str = str & CStr(j)
                str1 = str1 & ColumnLetter(j)
            End If
        End If
    Next j
    Cells(i, 1).Value = str
    Cells(i, 10).Value = str1
Next i

End Sub

Function ColumnLetter(ColumnNumber As Integer) As String
  If ColumnNumber > 26 Then
    ColumnLetter = Chr(Int((ColumnNumber - 1) / 26) + 64) _
      & Chr(((ColumnNumber - 1) Mod 26) + 65)
  Else
    ColumnLetter = Chr(ColumnNumber + 64)
  End If
End Function


FYI: Funkcja znaleziona w Google (reszta moja :mrgreen: ).
.

Kopia PRZYKŁAD-2.xlsm
Pobierz Plik ściągnięto 10 raz(y) 21.33 KB

_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
I dbajmy - proszę - o poprawną polszczyznę.
ID posta: 362296 Skopiuj do schowka
 
 
Waldek 
ExcelSpec


Pomógł: 121 razy
Posty: 579
Wysłany: 10-02-2019, 04:08   

Formuła tablicowa:
Kod:
=PODSTAW(SUMA.ILOCZYNÓW((NR.KOLUMNY(B2:I2)-1)*10^(NR.KOLUMNY(B2:I2)-2);JEŻELI.BŁĄD(ZNAK.LICZBY(B2:I2);0));0;"")

Wprawdzie cyfry podaje w odwrotnej kolejności (od największej do najmniejszej), ale jak to ma być kod to nie będzie miało znaczenia.

PRZYKŁAD (1).xlsx
Pobierz Plik ściągnięto 14 raz(y) 9.09 KB

ID posta: 362297 Skopiuj do schowka
 
 
lakra
świeżak


Posty: 2
Wysłany: 10-02-2019, 08:42   

Super Wam dziękuję!!!!! :clap

Widzę, że działa :-> teraz sobie to przeanalizuję i postaram się lepiej zrozumieć.

Miłej niedzieli życzę
ID posta: 362301 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1230 razy
Posty: 4264
Wysłany: 10-02-2019, 11:00   

Jeśli może być kod to proponuję:
1. Dane mogą być do kolumny Z. Nie rozważam więcej.
Dane zawsze od B2 w prawo i w dół.
2. Ponieważ rozważam dane aż do kolumny Z to wynik zwracam jako tekst np. "DF". Nie można zwrócić jako "46" bo jeśli otrzymamy wynik np. "23" to nie będziemy wiedzieli czy oznacza to, że tylko kolumna W jest TRUE czy w kolumnach B i C są TRUE.
Kod:

Sub columns_true()
Dim lastRow As Long, lastCol As Long, dane(), r As Long, c As Long, letter As String, result As String
    With ThisWorkbook.Worksheets("Arkusz1")
        lastRow = .Cells(Rows.Count, "B").End(xlUp).Row
        If lastRow < 2 Then Exit Sub
        lastCol = .Cells(2, Columns.Count).End(xlToLeft).Column
        If lastCol < 2 Then Exit Sub
        dane = .Range(.Range("B2"), .Cells(lastRow + 1, lastCol)).Value
    End With
    letter = "a"
    For r = 1 To UBound(dane) - 1
        result = ""
        For c = 1 To UBound(dane, 2)
            If dane(r, c) Then
                Mid(letter, 1, 1) = Chr(65 + c)
                result = result & letter
            End If
        Next c
        dane(r, 1) = result
    Next r
    ThisWorkbook.Worksheets("Arkusz1").Range("A2").Resize(UBound(dane) - 1).Value = dane
End Sub
ID posta: 362304 Skopiuj do schowka
 
 
WicherTKD
Stały bywalec Excelforum


Pomógł: 18 razy
Posty: 406
Wysłany: 10-02-2019, 12:08   

Ktoś mógłby wytłumaczyć dlaczego Excel zmienia kolejność wypisywania liczb przy tym kroku? (Funkcja Waldka)

Przechwytywanie.PNG
Plik ściągnięto 272 raz(y) 10.65 KB

_________________
Budżet w Excelu (BWE)
ID posta: 362305 Skopiuj do schowka
 
 
Waldek 
ExcelSpec


Pomógł: 121 razy
Posty: 579
Wysłany: 10-02-2019, 13:07   

Excel nie zmienia kolejności liczb, tylko te liczby dodaje po wcześniejszym wymnożeniu przez zero lub 1, zgodnie z formułą SUMA.ILOCZYNÓW. By kolejność się zmieniła formułę trzeba by było tak napisać by zamiast: 1, 20, 300, 4000... było: 8, 70, 600, 5000... lub: 10000000, 2000000, 300000, 40000..., kolejność nie gra roli.
ID posta: 362307 Skopiuj do schowka
 
 
Waldek 
ExcelSpec


Pomógł: 121 razy
Posty: 579
Wysłany: 10-02-2019, 13:46   

Dodawane mogą też być ułamki dziesiętne: 1+0,1+0,002+0,0003+0,00004...
Kod:
=PODSTAW(PODSTAW(SUMA.ILOCZYNÓW((NR.KOLUMNY(B2:I2)-1)*10^-(NR.KOLUMNY(B2:I2)-2);JEŻELI.BŁĄD(ZNAK.LICZBY(B2:I2);0));",";0);0;"")


PRZYKŁAD (2).xlsx
Pobierz Plik ściągnięto 9 raz(y) 9.16 KB

ID posta: 362309 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe