code: public static String getXPathForColumnInRowByValueInOtherColumn(String value, String columnName, String... extraColumnNames) {
          String selectIndex = getXPathForColumnIndex(columnName);
          String rowXPath = getXPathForRowByValueInOtherColumn(selectIndex, value);
          String headerXPath = getXPathForHeaderRowByHeaders(columnName, extraColumnNames);
          return String.format("(.//table[./%1$s and ./%2$s])[last()]/%2$s/td",
                  headerXPath, rowXPath);
      }
docs: Creates an XPath expression that will find a cell in a row, selecting the row based on the
  text in a specific column (identified by its header text).
  @param value text to find in column with the supplied header.
  @param columnName header text of the column to find value in.
  @param extraColumnNames name of other header texts that must be present in table's header row
  @return XPath expression selecting a td in the row