Warunkowe połączenie między wierszami i kolumnami dla konkatenatu

1

Mam arkusz excel obecności, który wygląda tak. Każdy uczeń jest rzędem, każda data klasy to kolumna. Mam w sumie 48 klas, w sumie 66 uczniów (Umieszczając to, ponieważ złożoność rozwiązania musi być możliwa).

Excel Sheet

Teraz, dla każdego wiersza, tj. Każdego ucznia, chcę poznać daty nieodebranych zajęć. Dla ucznia 6 chcę, aby „9,19,23” było wyświetlane w ostatniej komórce w tym rzędzie.

W każdym rzędzie chcę, aby liczba uczniów, którzy tego dnia nie dotarli do klas, była taka sama. Dla daty = 24 chcę, aby „7,8,9,10” wyświetlało się w ostatniej komórce w tej kolumnie.

Jak zrobić to warunkowe połączenie bez twardych wartości kodowania dla każdej komórki? Czy mogę użyć jakiejś formuły zakresu?

divinediu
źródło
Stół obrotowy? W przeciwnym razie, co próbowałeś?
Raystafarian

Odpowiedzi:

0

Dobra, to trochę bałagan, ale działa tak długo, jak długo chcesz tworzyć i ukrywać kilka dodatkowych kolumn.

Zasadniczo chodzi o stworzenie całej siatki instrukcji IF (po jednej dla każdej komórki w głównych danych dotyczących obecności), a następnie ukrycie wszystkich tych kolumn i połączenie ich wartości w jedną kolumnę.

Po prawej stronie głównych danych w komórce w drugim rzędzie (wiersz pierwszego ucznia) dodaj następującą formułę:

=IF(B2="a",B$1&",","")

Oznacza to, że jeśli uczeń w tym rzędzie był nieobecny w danym dniu, napisz tutaj dzień, w przeciwnym razie pozostaw to pole puste. (Wartość $ w B $ 1 jest niezbędna, ponieważ spowoduje to, że dane wyjściowe będą wyglądały na pierwszy wiersz, nawet w wersjach do kopiowania / wklejania formuły).

Następnie skopiuj / wklej tę formułę do pełnego zakresu komórek równego liczbie komórek danych obecności (więc jeśli dane obecności wynoszą 48 na 66 komórek, to instrukcje IF powinny również wypełnić 48 na 66 komórek).

Teraz powinieneś zobaczyć 48 kolumn głównie pustych komórek, ale z niektórymi komórkami wypełnionymi w celu dopasowania dni uczniowie byli nieobecni.

Następnie w kolumnie po prawej stronie tego wszystkiego, w drugim wierszu, dodaj formułę podobną do tej:

=CONCATENATE(X2,Y2,Z2,...etc...)

Zastąp X2, Y2, Z2 itd. Komórkami instrukcji IF (możesz to zrobić szybko, klikając każdą komórkę, a następnie naciskając klawisz przecinka).

Gdy naciśniesz enter, ta komórka powinna wyglądać mniej więcej tak: 6,13,18,

Wypełnij ten wzór w dół arkusza, aby uwzględnić każdy wiersz / ucznia.

Teraz, jeśli końcowy przecinek jest zbyt bolesny, aby go zobaczyć, możesz go utworzyć inne kolumna, aby spojrzeć na kolumnę konkatenacji i zwrócić wszystkie znaki tej kolumny z wyjątkiem ostatniej.

=IF(LEN(X2)>0,LEFT(X2,LEN(X2)-1),"")

Zastąp X2 komórką, która ma połączony ciąg. (W tym IF (LEN (X2)> 0 sprawia, że ​​nie ma błędu, jeśli uczeń miał doskonałą frekwencję).

Następnie po prostu ukryj wszystkie kolumny, z wyjątkiem ostatniej, i dobrze jest iść!

Alternatywnie, myślę, że VBA ma funkcję konkatenatu, która mogłaby pomóc, ale nie wiem, jak z niej korzystać.

LvxOne
źródło