古い投稿でしたが、自分のソリューションをミックスに追加したかったのです。私が見つけた列名はもっと便利だと思います。この方法では、ソースデータの列を挿入または削除するときにクエリ関数呼び出しを編集する必要はありません。
他の人が一致と置換を使用するのを見てきましたが、単にクエリ関数呼び出しとは少し異なるものを実装しました。
最初に-このようなすべての列名のルックアップテーブルを作成します。ルックアップテーブルは、「Config」シートの列Eで始まります。これは、シートに他のアイテムがあるため、独自のシートに簡単に配置できるためです。
列1(列名)
=TRANSPOSE( 'Source Data'!1:1 )
列2(列#)
=arrayformula( row( E2:E ) - 1 )
列3(列レター)
=arrayformula( if( int( F2:F / 26.5 ) > 0, char( int( F2:F / 26.5 ) + 64), "" ) & char( (F2:F - (int( F2:F / 26.5 ) * 26 ) ) + 64 ) )
列番号を文字に変換するための改良を受け入れています。この式は、78列しか処理できないという制限があります。私にとっては十分すぎるほど。
これで、クエリ関数呼び出しは次のようになります。
=query( 'Source Data'!$A:$L,
"Select " & " " &
vlookup( "Date", Config!$E:$G, 3, false ) & ", " &
vlookup( "Dev Query Engine Conn Count", Config!$E:$G, 3, false ) & ", " &
vlookup( "Dev Conn Limit Retry Count", Config!$E:$G, 3, false ) & ", " &
vlookup( "Dev Max Sequential Retry in One Minute", Config!$E:$G, 3, false ) & ", " &
vlookup( "Dev Conn Limit Errors", Config!$E:$G, 3, false ) & " " &
"where " & vlookup( "Display in Graph.", Config!$E:$G, 3, false ) & "=TRUE " &
"order by " & vlookup( "Date", Config!$E:$G, 3, false ) & " desc "
)
きれいにフォーマットされた状態に保ち、管理するのは悪くありません。苦労するのは、vlookup範囲の列インデックスを変更する場合だけです。しかし、これがヘルパー範囲であると考えると、これは頻繁に変わるべきではありません。
HEADERS > 0
、与えられた数のヘッダー行が=QUERY
クエリ結果の上に返されますよね?それは理にかなっています-HEADERS
クエリでは指定された行のみを無視すると考えました。