2017-08-03 9 views
1

特定のセルにあるもの(ドロップダウンからのものが好ましい)に応じて、一度に1つのシートから情報を取得したいと考えています。文字列を参照として使用するデータ範囲(動的シートピッカー)

ドロップダウンリストのA1には、現在のワークブック+データ範囲のシート名が必要です(A1:B10など)。 A1 = Sheet2のA1に

:B10これは(文字列として)完全な例である

式が、それは通常の参照だった場合、それはこの ようになります例

ためA3になります = SUM(A1) しかし、実際にはこのようなものが実際に表示されると思います。 = SUM( "A1") = QUERY( "A1"、 "SELECT A、B")ラフ構文

希望、これは理にかなっていると、誰かが助けることができ、おかげで事前に

Psのそれは、スクリプトなしで行うことができない場合だけであなたは以下のコードを試すことができます

答えて

1

を思って罰金だと....

//This will add all the sheet Names and the range in the cell A1 as dropdown 
    function addDropDown(){ 
     var cell= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("A1"); 
     var sheet= []; 
     var allsheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 
     for(i = 0; i < allsheets.length; ++i){ 
      if(allsheets[i].getName().toString().toLowerCase().indexOf("report")!=-1){ 
      sheet.push(allsheets[i].getName()+"!"+allsheets[i].getDataRange().getA1Notation()); 
      } 
     } 
     var rule = SpreadsheetApp.newDataValidation().requireValueInList(sheet).build(); 
     cell.setDataValidation(rule); 
    } 

唯一の問題は、あなたが直接=sum(A1)を使用することはできませんが、代わりにあなたが働くこの=sum(INDIRECT(A1))または=QUERY(INDIRECT(A1),"SELECT A, B")

+0

感謝を行うことができますですすばらしいです。 –

+0

ドロップダウンリスト内のシートを、その中に「レポート」という単語を持つものに制限するように、よりカスタマイズ可能なILを作成します。 「sheet1」、「sheet1」、「report123」、「report 456」をシートのリストから取得するのではなく、レポートページを取得するだけですが、どうすればよいでしょうか?ありがとう –

+1

あなたはindexOfを使ってこれを達成することができます...私はコード – Ritz

関連する問題