1

vlookup を使用してセルフ シート「=vlookup(h2, A2:B2000, 2, False)」を検索し、他のシート「=SupplierList!A2」および「=vlookup(SupplierList!H3, A2」から値を返すかどうかをテストしました。 :B2000, 2, False)」でも構いません。

では、なぜ "=vlookup(h3, SupplierList!A2:B2000, 2, False)" だけがエラーになるのでしょうか?

- - - - - - - - - - - - - - エラーメッセージ - - - - - - - - - - - ----------

Fatal error: Uncaught exception 'Exception' with message 'PO!G2 -> Invalid cell coordinate A' in C:\Program Files\EasyPHP-5.3.6.0\www\ExcelImporter\Classes\PHPExcel\Cell.php:288 Stack trace: #0 C:\Program Files\EasyPHP-5.3.6.0\www\ExcelImporter\Classes\PHPExcel\Cell.php(204): PHPExcel_Cell->getCalculatedValue() #1 C:\Program Files\EasyPHP-5.3.6.0\www\ExcelImporter\Documentation\Examples\index.php(36): PHPExcel_Cell->getFormattedValue() #2 {main} thrown in C:\Program Files\EasyPHP-5.3.6.0\www\ExcelImporter\Classes\PHPExcel\Cell.php on line 288

- - - - - - - - - - - - - - エラーメッセージ - - - - - - - - - - - ----------

セルはこのような式である **=IF(ISERROR(VLOOKUP(H2349,'Supplier List'!A:B,2,FALSE)),"-",VLOOKUP(H2349,'Supplier List'!A:B,2,FALSE))**

4

2 に答える 2

0

コメントするには長すぎます...

計算エラーをデバッグするとき、私は以下を使用します:

function testFormula($sheet,$cell) {
    $formulaValue = $sheet->getCell($cell)->getValue();
    echo '<b>'.$cell.' Value is </b>'.$formulaValue."<br />\n";
    $expectedValue = $sheet->getCell($cell)->getOldCalculatedValue();
    echo '<b>'.$cell.' Expected Value is </b>'.((!is_null($expectedValue)) ? $expectedValue : 'UNKNOWN')."<br />\n";


    $calculate = false;
    try {
        $tokens = PHPExcel_Calculation::getInstance()->parseFormula($formulaValue,$sheet->getCell($cell));
        echo '<b>Parser Stack :-</b><pre>';
        print_r($tokens);
        echo '</pre>';
        $calculate = true;
    } catch (Exception $e) {
        echo "PARSER ERROR: ".$e->getMessage()."<br />\n";

        echo '<b>Parser Stack :-</b><pre>';
        print_r($tokens);
        echo '</pre>';
    }

    if ($calculate) {
        try {
            $cellValue = $sheet->getCell($cell)->getCalculatedValue();
            echo '<b>'.$cell.' Calculated Value is </b>'.$cellValue."<br />\n";

            echo '<h3>Evaluation Log:</h3><pre>';
            print_r(PHPExcel_Calculation::getInstance()->debugLog);
            echo '</pre>';
        } catch (Exception $e) {
            echo "CALCULATION ENGINE ERROR: ".$e->getMessage()."<br />\n";

            echo '<h3>Evaluation Log:</h3><pre>';
            print_r(PHPExcel_Calculation::getInstance()->debugLog);
            echo '</pre>';
        }
    }
}


$sheet = $objPHPExcel->getActiveSheet();
PHPExcel_Calculation::getInstance()->writeDebugLog = true;


testFormula($sheet,'A4');

これにより、計算エンジンが実行しているすべてのかなり詳細なログが提供され、問題の原因を特定できます。

ファイルを保存するときにセル値の計算を無効にするだけの場合は、yor writerをインスタンス化した後、saveコマンドを発行する前に次のコマンドを発行できます。

$objWriter->setPreCalculateFormulas(FALSE);
于 2012-04-17T06:32:54.493 に答える
-1

para resolver esse problema "無効なセル座標" $this->caracteres = array( ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H '、'I'、'J'、'K'、'L'、'M'、'N'、'O'、'P'、'Q'、'R'、'S'、'T'、 「U」、「V」、「X」、「Y」、「W」、「Z」、「AA」、「AB」、「AC」、「AD」、「AE」、「AF」、「AG」 '、'AH'、'AI'、'AJ'、'AK'、'AL'、'AM'、'AN'、'AO'、'AP'、'AQ'、'AR'、'AS'、 'AT', 'AU', 'AV', 'AX', 'AY', 'AW', 'AZ');

adicione mais caracteres , 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL '、'AM'、'AN'、'AO'、'AP'、'AQ'、'AR'、'AS'、'AT'、'AU'、'AV'、'AX'、'AY'、 'AW', 'AZ'); ....

この問題を解決する英語「無効なセル座標」 $ this-> characters = array ( '', 'A', 'B', 'C', 'D', 'E', 'F', 'G', ' H'、'I'、'J'、'K'、'L'、'M'、'N'、'O'、'P'、'Q'、'R'、'S'、'T' , 'U', 'V', 'X', 'Y', 'W', 'Z' 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG ', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM' 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', ' AT'、'AU'、'AV'、'AX'、'AY'、'AW'、'AZ ');

さらに文字を追加、「AA」、「AB」、「AC」、「AD」、「AE」、「AF」、「AG」、「AH」、「AI」、「AJ」、「AK」、「AL」 ', 'AM' 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AX', 'AY', ' AW'、'AZ'); ....

于 2013-09-03T16:43:09.047 に答える