src/org/tiefaces/components/websheet/utility/ShiftFormulaUtility.java
private static void buildDynamicRowForRefPtgBase(final Object ptg,
			final byte originalOperandClass, final List<SerialRow> rowList,
			final Ptg[] newPtg, final boolean includeParenthesis) {
		RefPtgBase refPtg = (RefPtgBase) ptg;
		int unitSize = 1;
		if (includeParenthesis) {
			unitSize = 2;
		}
		for (int i = 0; i < rowList.size(); i++) {
			Row row = rowList.get(i).getRow();
			if (refPtg instanceof Ref3DPxg) {
				Ref3DPxg ref3dPxg = (Ref3DPxg) refPtg;
				Ref3DPxg new3dpxg = new Ref3DPxg(
						ref3dPxg.getExternalWorkbookNumber(),
						new SheetIdentifier(null,
								new NameIdentifier(ref3dPxg.getSheetName(),
										false)),
						new CellReference(row.getRowNum(),
								ref3dPxg.getColumn()));
				new3dpxg.setClass(originalOperandClass);
				new3dpxg.setColRelative(ref3dPxg.isColRelative());
				new3dpxg.setRowRelative(ref3dPxg.isRowRelative());
				new3dpxg.setLastSheetName(ref3dPxg.getLastSheetName());
				newPtg[i * unitSize] = new3dpxg;
			} else {
				RefPtgBase refPtgBase = refPtg;
				newPtg[i * unitSize] = new RefPtg(row.getRowNum(),
						refPtgBase.getColumn(), refPtgBase.isRowRelative(),
						refPtgBase.isColRelative());
			}
			if ((unitSize == 2) && (i < (rowList.size() - 1))) {
				newPtg[i * unitSize + 1] = ParenthesisPtg.instance;
			}
		}
	}
private static void buildDynamicRowForRefPtgBase(final Object ptg,
			final byte originalOperandClass, final List<SerialRow> rowList,
			final Ptg[] newPtg, final boolean includeParenthesis) {
		RefPtgBase refPtg = (RefPtgBase) ptg;
		int unitSize = 1;
		if (includeParenthesis) {
			unitSize = 2;
		}
		for (int i = 0; i < rowList.size(); i++) {
			Row row = rowList.get(i).getRow();
			if (refPtg instanceof Ref3DPxg) {
				Ref3DPxg ref3dPxg = (Ref3DPxg) refPtg;
				Ref3DPxg new3dpxg = new Ref3DPxg(
						ref3dPxg.getExternalWorkbookNumber(),
						new SheetIdentifier(null,
								new NameIdentifier(ref3dPxg.getSheetName(),
										false)),
						new CellReference(row.getRowNum(),
								ref3dPxg.getColumn()));
				new3dpxg.setClass(originalOperandClass);
				new3dpxg.setColRelative(ref3dPxg.isColRelative());
				new3dpxg.setRowRelative(ref3dPxg.isRowRelative());
				new3dpxg.setLastSheetName(ref3dPxg.getLastSheetName());
				newPtg[i * unitSize] = new3dpxg;
			} else {
				RefPtgBase refPtgBase = refPtg;
				newPtg[i * unitSize] = new RefPtg(row.getRowNum(),
						refPtgBase.getColumn(), refPtgBase.isRowRelative(),
						refPtgBase.isColRelative());
			}
			if ((unitSize == 2) && (i < (rowList.size() - 1))) {
				newPtg[i * unitSize + 1] = ParenthesisPtg.instance;
			}
		}
	}
Builds the dynamic row for ref ptg base.

@param ptg
the ptg
@param originalOperandClass
the original operand class
@param rowList
the row list
@param newPtg
the new ptg
@param includeParenthesis
the include parenthesis