別のスプレッドシートの列番号取得

このQ&Aのポイント
  • 別のスプレッドシートの列番号を取得する方法について説明します。
  • ブックAの特定のセルに対して、ブックB内の最後の文字列が入ったセルの列位置を取得する方法を知りたいです。
  • 同じブック内では問題なく動作する数式についてはわかっていますが、別のスプレッドシートを参照する場合にエラーが発生してしまいます。同じ動作をさせるためにはどのような数式を使用すればよいでしょうか?
回答を見る
  • ベストアンサー

別のスプレッドシートの列番号を取得したい

ブックA「A1」に、ブックB「1:1」の範囲内で、文字列が入っている一番右(最後)のセルの列位置を取得したいと考えています。 ※下の例でいえば「I1=う=9」です。 同じブックの中であれば、以下の計算式で表示されました。 ------------------------ ■ブックB  |A|B|C|D|E|F|G|H|I|J| 1|あ| | |い| | | | |う| | 2|●| A2=MATCH(INDEX(1:1,MAX(IF(1:1<>"",COLUMN(1:1)))),1:1,0)=9 ------------------------- 最初に説明したように、これをブックをまたいだ場合にも同じように機能させたいのですが、エラーが出てしまい出来ません。 ------------------------- ■ブックB  |A|B|C|D|E|F|G|H|I|J| 1|あ| | |い| | | | |う| | ■ブックA  |A|B|C|D|E|F|G|H|I|J| 1|●| | | | | | | | | | ※●に以下数式 -------------------- A1=MATCH(INDEX(IMPORTRANGE("URL","1:1"),MAX(IF(IMPORTRANGE("URL","1:1")<>"",COLUMN(*****)))),IMPORTRANGE("URL","1:1"),0) -------------------- *****の中身 -------------------- COLUMN(IMPORTRANGE("URL","1:1")) エラー → 引数は範囲である必要があります。 COLUMN(INDIRECT(IMPORTRANGE("URL","1:1"))) エラー → 関数 INDIRECT のパラメータ 1 の値が「あ」です。これは無効なセル/範囲の参照です。 -------------------- どのような数式にすれば、同じブック内と同様の挙動をさせられるでしょうか? 2日間悩みましたが分からないので、何卒お力を犯し頂きたく存じます。 よろしくお願いいたします! ※Excelではなく、スプレッドシートについてです。 ※別々のスプレッドシートを表したいのですが、適当な表現が見当たりません。ここでは便宜上、Excelと同じようにブックと呼ばせていただきました。

  • myktk
  • お礼率52% (338/648)

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (715/1478)
回答No.1

まずは数式はなるべく簡単にします。 =MAX(INDEX(IF(1:1<>"",COLUMN(1:1)))) でできます。 その上で、IFの1:1 を入れ替えます。 =MAX(INDEX(IF(importrange("スプレッドシートキー","1:1")<>"",COLUMN(1:1)))) https://docs.google.com/spreadsheets/d/1udCBghpIDcRnxacJHIztSecTP-Jflyd207iyqcw0TIU/edit?usp=sharing https://docs.google.com/spreadsheets/d/1ph73FmWq2F0wzORoaWyv2hVd4jXzBsgHLxiPmq4Mszk/edit?usp=sharing

myktk
質問者

お礼

こんなにシンプルにできるんですね!脱帽です。 本当にありがとうございました!!!

関連するQ&A

  • エクセル 3列おきに列を挿入したい

    いつもお世話になります。 1行目に営業所コードがあり、そのコードを3列おきに表示するにはどうしたらいいでしょうか。   A  B  C  D  E  F  G  H  I  J   2   3   4   5   7   8  11  12  14  15              ↓   A  B  C  D  E  F  G  H  I  J   2          3         4         5 営業所コードは2~150の数字で、100ほどの営業所コードが存在します。 よろしくお願いします。

  • ツリー情報のデータをSQLで取得したい

    SQLServer 2008 です。 以下のツリーデータの場合に A ┬C │├D ┬H ││ ├I ││ └J │└E B ┬F ┬I  │ └L  └G 次のようなデータを登録しています。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │B  │F  │"F" │ ├──┼──┼──┤ │B  │G  │"G" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ ├──┼──┼──┤ │F  │I  │"I" │ ├──┼──┼──┤ │F  │L  │"L" │ └──┴──┴──┘ 引数OYA="A"でSQLを実行した場合に 以下のような この引数を含むそれ以下のツリーに関する データを取得する方法を教えてください。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ └──┴──┴──┘

  • Excelで飛び飛びのセル(列)を参照したいのですが…その2

     ある「sheet1」で、G1="A",H1="B",I1="C",J1="D",K1="E",L1="F",M1="G",N1="H",O1="I",P1="J",Q1="K",・・というように文字が入力されているとすると、5列飛びの値A,F,K・・・(G1,L1,Q1・・・)が欲しいのです。そして、その値が「sheet2」に、C5=A,D5=F,E5=K,F5=P・・・となるようにしたいのです。ただ数値が5ずつ増加するのではなく、そのセルに入力されている文字列を参照したいのです。  それをまた、「sheet1」の、G2="A",H2="B",I2="C",J2="D"・・・の値でも同じ事をしたいのですが・・・。  よろしくお願いします。

  • エクセルで2列以上のものを同時に並び替えするには

    エクセルで下記のようなデーターがあるとします。 1 A  G     B  H 2 C  I  ○   D  J 3 E  K   F  L このようにひとつの項目に2行づつあるものに対して、最後に○をつけたものを先頭に2行そのまま一気に並び替えるにはどのようにすればよろしいでしょうか?要するに 2 C  I  ○   D  J 1 A  G     B  H 3 E  K   F  L このようにしたいです。 よろしくお願いいたします。

  • excel 関数作成の簡素化 ?

    A B C D E F G H I J 1784 1784 1781 1782 1809 1813 1821 1813 1784 1784 (1)A-B B-C C-D D-E E-F F-G G-H H-I I-J (1)0 3 -1 -27 -4 -8 8 29 0 (2)=SUMIF(A:I,">0",A:I) で 40になる 上記の(1)を使用せず (2)のように一気に出来ないか? もしも 表示が悪ければ 書き直し する為 回答不要

  • HLOOKUPで複数の結果を取得する方法

    元データ 1  2  4  2  2  2  3  3  3  2  1 A B  C D E  F  G  H  I  J  K から、以下のように、 1を入力すると、A と K が、 3を入力すると、G と H と I が右のセルに表示される、といったものを 作成しているのですが、なかなかうまくいきません・・・。 ↓入力データ 1  A   K 2  B   D   E   F   J 3  G   H   I 4  C   ↑   ↑ここから右、HLOOKUPで引っ張れないデータ   ↑HLOOKUPで引っ張れるデータ HLOOKUP関数を駆使すれば、なんとかなりそうな気もするのですが・・・ どなたかご教授願えないでしょうか??

  • #N/A の消し方

    セルI11に =INDEX(形材!D:D,MATCH(B11&C11&D11,INDEX(形材!$E$1:$E$10000&形材!$F$1:$F$10000&形材!$G$1:$G$10000,),0))&"" 上記の関数だと、B、C、Dに何も入力しなくてもI11は空白なのですが、 違うシートのセルH7に =INDEX(部品!D:D,MATCH(B7,INDEX(部品!$E$1:$E$10000,),0))&"" を入れると、Bに何も入力しないとH7に#N/Aが表示されます。 #N/Aを表示させない方法はありますか

  • 巨大なCSVの加工(指定列のみの抽出)について

    巨大なCSVの加工(指定列のみの抽出)について 下記のような構成のCSVファイルがあります。 "ID","a","b","c","d","e","f","g","h","i","j","k","l","m" "0001","a","b","c","d","e","f","g","h","i","j","k","l","m" "0003","a","b","c","d","e","f","g","h","i","j","k","l","m" "0004","a","b","c","d","e","f","g","h","i","j","k","l","m" ・ ・ ・ 例えば、 ここから"ID"列と"c"列と"f"列のみ抽出して新たなCSVファイルで保存。 という処理を行いたいのですが、行数が5000万行近くあり、ファイルサイズが80GB程あるので エクセルはおろかアクセスでも開くことができません。 テキストエディタの秀丸64bit版なら開くことができますが、指定列の抽出方法が分かりません。 秀丸のマクロでもVBSでも良く、また膨大な待ち時間がかかっても構わないので実現する方法について お知恵をお貸しください。

  • VBA

    1 a;b;c;d; 2 e;f;g;h; 3 i;j;k;l; をVBAで   1 a;   2 e;   3 i;   1 b;   2 f;    3 j;   1 c;   2 g;   3 k;   1 d;   2 h;   3 l; としたいのですが、どうしたらいいですか?

  • diskpartのRAID10の作成について

    現在windows server 2008 standardでソフトウェアRAIDをdiskpartで組もうと思っているのですが 10個のハードディスクでRAID10を組めるのか知りたいです。 10個のHDDを順にA,B,C,D,E,F,G,H,I,Jとし A,B,C,D,EとF,G,H,I,Jをストライプボリュームで作成し その後、(A,B,C,D,E)と(F,G,H,I,J)でミラーボリュームを作成することは可能なのでしょうか。

専門家に質問してみよう