@@ -451,6 +451,48 @@ public void StructuredTableReferenceMultipleHeaders()
451451 CollectionAssert . AreEqual ( new [ ] { "Jan" , "Mar" } , references [ 0 ] . TableColumns ) ;
452452 }
453453
454+ [ TestMethod ]
455+ public void StructuredTableReferenceIntersectColumns ( )
456+ {
457+ List < ParserReference > references = new FormulaAnalyzer ( "=SUM(Sales_2[Jan]:Sales_2[Feb])" ) . ParserReferences ( ) . ToList ( ) ;
458+
459+ Assert . AreEqual ( 1 , references . Count ) ;
460+ Assert . AreEqual ( ReferenceType . Table , references . First ( ) . ReferenceType ) ;
461+ Assert . AreEqual ( "Sales_2" , references . First ( ) . Name ) ;
462+ CollectionAssert . AreEqual ( new string [ ] { } , references . First ( ) . TableSpecifiers ) ;
463+ CollectionAssert . AreEqual ( new [ ] { "Jan" , "Feb" } , references . First ( ) . TableColumns ) ;
464+ }
465+
466+ [ TestMethod ]
467+ public void StructuredTableReferenceIntersectDifferentSpecifiers ( )
468+ {
469+ List < ParserReference > references = new FormulaAnalyzer ( "=COUNTA(Sales_2[[#Headers],[Jan]]:Sales_2[[#Data],[Feb]])" ) . ParserReferences ( ) . ToList ( ) ;
470+
471+ Assert . AreEqual ( 1 , references . Count ) ;
472+ Assert . AreEqual ( ReferenceType . Table , references . First ( ) . ReferenceType ) ;
473+ Assert . AreEqual ( "Sales_2" , references . First ( ) . Name ) ;
474+ CollectionAssert . AreEqual ( new string [ ] { } , references . First ( ) . TableSpecifiers ) ;
475+ CollectionAssert . AreEqual ( new [ ] { "Jan" , "Feb" } , references . First ( ) . TableColumns ) ;
476+ }
477+
478+ [ TestMethod ]
479+ public void StructuredTableReferenceIntersectDifferentTables ( )
480+ {
481+ List < ParserReference > references = new FormulaAnalyzer ( "=COUNTA(Sales_2[Jan]:Sales_4[Feb])" ) . ParserReferences ( ) . ToList ( ) ;
482+
483+ Assert . AreEqual ( 2 , references . Count ) ;
484+
485+ Assert . AreEqual ( ReferenceType . Table , references [ 0 ] . ReferenceType ) ;
486+ Assert . AreEqual ( "Sales_2" , references [ 0 ] . Name ) ;
487+ CollectionAssert . AreEqual ( new string [ ] { } , references [ 0 ] . TableSpecifiers ) ;
488+ CollectionAssert . AreEqual ( new [ ] { "Jan" } , references [ 0 ] . TableColumns ) ;
489+
490+ Assert . AreEqual ( ReferenceType . Table , references [ 1 ] . ReferenceType ) ;
491+ Assert . AreEqual ( "Sales_4" , references [ 1 ] . Name ) ;
492+ CollectionAssert . AreEqual ( new string [ ] { } , references [ 1 ] . TableSpecifiers ) ;
493+ CollectionAssert . AreEqual ( new [ ] { "Feb" } , references [ 1 ] . TableColumns ) ;
494+ }
495+
454496 [ TestMethod ]
455497 public void SheetWithUnderscore ( )
456498 {
0 commit comments