2017-07-09 5 views
1

Ich versuche, Werte aus der aktuellen Zeile und Zeilen oben Dropdown-Liste zu erhalten.Ich verwendete Excel SVERWEIS-Funktion.Wie in Screenshot für einen Account-Typ (Spalte A) Ich möchte es bekommen Kontoname für die aktuellen und Zeilen oben. Um Wörter, wenn A4-Wert ASSET ist, möchte ich Account-Namen (Haus, Möbel, Shop) für Dropdown-Liste E4 erhalten.Excel erhalten Werte von aktuellen und vorherigen Zeilen

CellRangeAddressList parentRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), PARENT_COL,PARENT_COL); 
    DataValidationHelper validationHelper=new HSSFDataValidationHelper((HSSFSheet) chartOfAccountsSheet); 
    DataValidationConstraint parentConstraint=validationHelper.createFormulaListConstraint("VLOOKUP($B2,$A$2:$B"+ SpreadsheetVersion.EXCEL97.getLastRowIndex()+",2,TRUE)"); 
chartOfAccountsSheet.addValidationData(parentValidation); 

enter image description here

+3

Diese Frage ist nur zweitrangig in Bezug auf 'Apache Poi'. Versuchen Sie zunächst, das Problem mithilfe der grafischen Benutzeroberfläche von Excel zu lösen. Dann haben Sie die Formel der Datenvalidierung, die Sie dann in Apache Poi Code verwenden können. Hinweis: 'SVERWEIS 'liefert ** einen ** Wert und keine Liste von Werten. Die Datenvalidierung benötigt jedoch eine Liste von Werten. –

+0

@AxelRichter jede geeignete Excel-Funktion, um eine Liste von Werten zurückzugeben? –

Antwort

0

Sie können dies versuchen.
Erstellen Sie einen dynamischen benannten Bereich.
Gehe zu Formeln -> Name Manager -> neu und definiere einen Bereich. diese Formel für bezieht sich auf:

=OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B:$B)-1,1) 

einen Bereich von B2 bis zur letzten nicht leeren Zeile Dies wird erstellen.

Dann gehen Sie voran, markieren Sie den Bereich, den die Dropdowns sein sollen.
Klicken Sie auf Datengültigkeit -> Liste und dann auf F3, um den benannten Bereich für die Liste auszuwählen.
Während Sie fortfahren, wird Ihr Bereich erweitert und die Dropdown-Liste wählt die Elemente aus. Hinweis: Es wird nicht auf Duplikate geachtet.
Hoffe es hilft.

Verwandte Themen