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: 58522 Skopiuj do schowka Sprawdzanie poprawności danych z dwóch list
Autor Wiadomość
apollo
ExcelSpec


Pomógł: 1234 razy
Posty: 4296
Wysłany: 03-09-2017, 21:21   Sprawdzanie poprawności danych z dwóch list

Dawno nie było zagadek ...
Mamy 2 listy w B1:B10 (bla1, ..., bla10) i Z1:Z10 (hichic1, ..., hichic10). Chcemy sprawdzanie poprawności w np. C1. Lista w C1 to połączenie 2 podanych list - bla1, ..., bla10, hichic1, ..., hichic10.
Rozwiązania:
1. Użyć kolumny pomocniczej i tworzyć listę docelową.
2. Użyć VBA.

Pytanie: czy można bez kolumny pomocniczej i VBA, i jeśli tak to jak?

Czuję, że nie da się, ale być może na tym forum są magicy ;-)
ID posta: 328906 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2019
Pomógł: 2111 razy
Posty: 6992
Wysłany: 04-09-2017, 22:41   

apollo, nie wiem czy dobrze zrozumiałem.
Oczekujesz takiego rozwiązania jak w załączniku, oczywiście bez tej kolumny "O".
Czyli utworzyć listę poprzez poprawność danych, z dwóch zakresów ("B1:B10,Z1:Z10") ?

Apollo.xlsx
Pobierz Plik ściągnięto 127 raz(y) 8.55 KB

_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

Szkolenia z Excela , FB
Office 2019 Professional Plus , Windows 10 x64
Pozdrawiam, były mkkk23 teraz Marecki.
ID posta: 329015 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1234 razy
Posty: 4296
Wysłany: 04-09-2017, 22:51   

Tak, ma być taka lista, jaką w tej chwili masz w C1, ale bez kolumny pomocniczej O i bez VBA
ID posta: 329016 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1273 razy
Posty: 4362
Wysłany: 05-09-2017, 09:36   

Jeśli wierzyć twórcom programu, a ci piszą, że
Microsoft napisał/a:
Źródło listy musi być listą rozdzielaną lub odwołaniem do pojedynczego wiersza lub kolumny
to wydaje mi się, że odpowiedź na postawione pytanie jest negatywna. Listę rozdzielaną można wprowadzić ręcznie lub zdefiniować w VBA, a odwołanie do pojedynczego wiersza lub kolumny można uzyskać tylko przez skopiowanie, czyli potrzebna jest kolumna pomocnicza. Nie wchodzą w grę zakresy złożone, jak w przypadku wykresów, więc jedyna rzecz (jak sądzę), którą można zrobić bez VBA i kolumny pomocniczej, to wykorzystanie wyboru warunkowego. Do pierwszej listy należałoby dopisać, np. na końcu, coś w rodzaju "cdn.". Po wyborze tej pozycji rozwijałaby się druga lista. Nie jest to bardzo wygodne, ale przy dwóch listach akceptowalne. Formuła listy mogłaby być taka:
Kod:
=JEŻELI(Arkusz1!C1="cdn.";lista2;lista1)
Lista startowałaby z części 1., a jeśli wybrano by pozycję kontynuacji, wtedy po ponownym kliknięciu trójkąta, mielibyśmy drugą część listy.
Jeśli ktoś ma pomysł bliższy ideałowi, to też chętnie go poznam.

Lista2.xlsx
Pobierz Plik ściągnięto 106 raz(y) 8.94 KB

ID posta: 329025 Skopiuj do schowka
 
 
hurgadion 
ExcelSpec



Pomógł: 1080 razy
Posty: 2447
Wysłany: 05-09-2017, 11:06   

Hej,
chyba się da... :lol: ustawienie niestandardowe i formułka:
Kod:

=LICZ.JEŻELI(B1:B10;G10)+LICZ.JEŻELI(Z1:Z10;G10)>0

ale przetestujcie, please, na wszelki wypadek... :lol:
_________________
miasto nauki
ID posta: 329040 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1234 razy
Posty: 4296
Wysłany: 05-09-2017, 14:38   

Maciej Gonet napisał/a:
Jeśli wierzyć twórcom programu, a ci piszą, że
Microsoft napisał/a:
Źródło listy musi być listą rozdzielaną lub odwołaniem do pojedynczego wiersza lub kolumny

...

Dziękuję za zainteresowanie, ale nie to.

Właśnie czytałem pomoc, i próbowałem, i doszedłem do wniosku, że się nie da. Ale pewności na 100% nie miałem. Pokora na to nie pozwala - przecież są magicy ;-)

Chodzi mi tylko o 1 listę. Taką, jaką Marecki ma w swoim pliku. Ale bez kolumny pomocniczej.

Trudno. Chciałem tylko się upewnić.
ID posta: 329073 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1234 razy
Posty: 4296
Wysłany: 05-09-2017, 14:41   

hurgadion napisał/a:
ustawienie niestandardowe

Chyba nie zrozumiałeś zadania.

(Aleś mnie nisko ocenił ;-) )
ID posta: 329074 Skopiuj do schowka
 
 
hurgadion 
ExcelSpec



Pomógł: 1080 razy
Posty: 2447
Wysłany: 05-09-2017, 14:51   

spokojnie... nie jest tak źle... to tylko obejście problemu... :lol: a tak fachowo, to podpisuję się pod tym co napisał MG... raczej nie istnieje taka funkcjonalność w VBA... jakby istniała, to najprawdopodobniej dałoby się konkatenować tablice jednowymiarowe... a chyba się nie da... :lol:
_________________
miasto nauki
ID posta: 329076 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1273 razy
Posty: 4362
Wysłany: 05-09-2017, 15:09   

Hurgadion, tablice konkatenować się da, ale nie zakresy, a to jest zasadnicza różnica. Lista poprawności wymaga zakresu (albo listy podanej wprost), a nie tablicy.
ID posta: 329082 Skopiuj do schowka
 
 
hurgadion 
ExcelSpec



Pomógł: 1080 razy
Posty: 2447
Wysłany: 05-09-2017, 15:18   

wiem, że jest to możliwe, ale chodzi mi o jedno działanie (funkcję) typu:
Kod:

tbl12 = tbl1 + tbl2

jeżeli
Kod:

tbl1 = Array(1,2,3)
tbl2 = Array(4,5,6)

to
Kod:

tbl1+tbl2 = Array(1,2,3,4,5,6)

natomiast zakres do sprawdzania poprawności jest chyba wczytywany jako tablica wartości, no chyba że jestem w błędzie... ?? :lol:
_________________
miasto nauki
ID posta: 329084 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1234 razy
Posty: 4296
Wysłany: 05-09-2017, 15:31   

hurgadion napisał/a:
wiem, że jest to możliwe

No to dołącz plik, bo nie wiem, o co chodzi.

Przecież ja napisałem jasno
Cytat:

Mamy 2 listy w B1:B10 (bla1, ..., bla10) i Z1:Z10 (hichic1, ..., hichic10). Chcemy sprawdzanie poprawności w np. C1. Lista w C1 to połączenie 2 podanych list - bla1, ..., bla10, hichic1, ..., hichic10.


Czyli w B1:B10 mam lista1 = bla1, ..., bla10, w Z1:Z10 mam lista2 = hichic1, ..., hichic10. Chcę po rozwinięciu C1 mieć lista3 = bla1, ..., bla10, hichic1, ..., hichic10
ID posta: 329089 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1273 razy
Posty: 4362
Wysłany: 05-09-2017, 15:42   

Hurgadion, za pomocą operacji połączyć się chyba nie da, natomiast za pomocą funkcji tak, na przykład:
Kod:
Sub MM()
  Dim a, b, c
  a = Array(1, 2, 3)
  b = Array(4, 5, 6)
  c = Split(Join(a) & " " & Join(b))
  Debug.Print LBound(c), UBound(c)
  Debug.Print c(1)
End Sub

To jednak nie załatwia problemu listy poprawności, bo nie wiedzieć czemu, ale twórcy Excela uparli się, że to ma być zakres. Tablica może być, ale w VBA, a apollo nie chciał VBA.
ID posta: 329090 Skopiuj do schowka
 
 
hurgadion 
ExcelSpec



Pomógł: 1080 razy
Posty: 2447
Wysłany: 05-09-2017, 16:08   

tak, połączenie Join/Split działa dobrze, o ile dobierzemy dobrze separator :lol: co do spr poprawności... to nie da się jakoś wcisnąć nazwy z podpiętą tablicą wartości ?? :lol:
_________________
miasto nauki
ID posta: 329093 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1234 razy
Posty: 4296
Wysłany: 05-09-2017, 16:30   

Maciej Gonet napisał/a:

twórcy Excela uparli się, że to ma być zakres

Właśnie. Nawet jak mam tablicę bez VBA to i tak nie "łyka"

Rozważmy teraz B1:B10 i Z11:Z20
Tablica JEŻELI(WIERSZ($1:$20)<=10;$B$1:$B$20;$Z$1:$Z$20) jest poprawna, np. formuła tablicowa
Kod:

=INDEKS(JEŻELI(WIERSZ($1:$20)<=10;$B$1:$B$20;$Z$1:$Z$20);13)


Albo nazwa lista
Kod:

=JEŻELI(WIERSZ(Arkusz1!$1:$20)<=10;Arkusz1!$B$1:$B$20;Arkusz1!$Z$1:$Z$20)

i formuła normalna
Kod:

=INDEKS(lista;13)


zwraca hichic3

Ale jak podać do Data Validation to nie łyka.
Cytat:

a apollo nie chciał VBA

Nie chcę bo z kolumną pomocniczą i VBA to dam sobie radę. Przecież podałem te informacje w pierwszym poście.
ID posta: 329096 Skopiuj do schowka
 
 
Bill Szysz 
Excel Expert


Wersja: Win Office 365
Pomógł: 794 razy
Posty: 3302
Wysłany: 06-09-2017, 10:56   

apollo, na to zadanie to chyba nawet magicy nic nie poradzą :mrgreen:
Wg mojej wiedzy nie ma sposobu by zrobić to o co pytałeś.
No ale moja wiedza jest ograniczona :mrgreen:

Pozdrawiam
_________________
Szkolenia z Power Query!!!

Pozdrawiam, były szbill62 aktualnie Bill Szysz
ID posta: 329149 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