パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Microsoft、新しいExcel関数「XLOOKUP」を発表」記事へのコメント

  • いちおう (スコア:5, 参考になる)

    by Anonymous Coward

    =VLOOKUP(検索値,IF({1,0},C1:C100,A1:A100),2,FALSE)
    とするとC列で検索してA列の値を返すことも可能。

    • Re: (スコア:2, 興味深い)

      by Anonymous Coward

      挙動がわからなさすぎてググってしまった
        `IF({1,0}, , )` が検索用の列を作成する感じなのか
      http://dev-clips.com/clip/functions/reverse-vlookup/ [dev-clips.com]

      # なんでIFがそんな挙動なのかは全然わからないが。。

      • Re: (スコア:3, 参考になる)

        第1引数が配列なので、IFの結果も配列になる。
        第1引数が要素2個の配列、第2、第3引数が100行1列の範囲なので、IFの結果は結果はこの直積である100行2列の2次元配列になる。
        第1引数の {1,0} は、IF関数的には1個目をTRUE、2個めをFALSEと解釈するので、結果の2次元配列には、1列目に第2引数であるC1:C100の値、2列目に第3引数であるA1:A100の値が格納される。
        これでVLOOKUP関数に渡せる形の配列になった。

        …と、数式を見れば何をやっているのかは分かるが、これを独自に思いついた人は頭がいいね。まさにコロンブスの卵。

        • by Anonymous Coward on 2019年08月31日 14時58分 (#3678217)

          ううう、これがどうしてもわからない、挙動をもう少し詳しく教えてください!
          >第1引数の {1,0} は、IF関数的には1個目をTRUE、2個めをFALSEと解釈するので、結果の2次元配列には、1列目に第2引数であるC1:C100の値、2列目に第3引数であるA1:A100の値が格納される。

          親コメント
          • by Anonymous Coward

            例えば、IF(TRUE,"hoge","fuga")って書いた場合、このIF関数は"hoge"を返すよね?
            IF関数の条件文にTRUE/FALSEを指定すると、直接第2引数と第3引数を入力したのと同じになる。

            第1引数の{1,0}っていうのは配列定数で、1行2列の表と同じ意味になる。
            Excelでは1以上はTRUE、0はFALSEと見なすことができるので、{1,0}は、次のような表を指定したことになる。

            |TRUE|FALSE|

            で、TRUEは第2引数、FALSEは第3引数を返すので、IF({1,0},C1:C100,A1:A100)は、こうなる。

            |C1:C100|A1:A100|

            つまり、1列目に元の表のC列、2列目に元の表のA列を書いた表ができる。
            VLOOKUPはこの表を範囲とすることになるので、C列を検索してA列の値を返してくれるってことになる。

          • by Anonymous Coward

            IF({1,0},C1:C100,A1:A100)
            の結果は
            IF(1,C1:C100,A1:A100)
            の結果(C1:C100)と
            IF(0,C1:C100,A1:A100)
            の結果(A1:A100)が
            {1,0}
            の順で並んだものになる。
            でわかるだろうか?

            なお配列定数内({}内)では「,」が横方向、「;」が縦方向の項目の区切りになる。

            • by Anonymous Coward

              二つとも同じかたの説明ですよね
              完全に理解でき、すごく感動しました。
              感謝!

犯人はmoriwaka -- Anonymous Coward

処理中...