戻る  □VBAのサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
配列数式の{}の入力の仕方について

    [133545] 配列数式の{}の入力の仕方について-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ KEI -(2023/01/20(21:43))
    □U R L/
      EXCEL 初心者で勉強中の者です。
      
      配列数式の中かっこに悪戦苦闘しております。
      
      
          A列 B列 C列
      
      
        1行    1   2   {=Q25:Q27*R25:R27}
        2行      2   3
        3行      4   5
      
      上記のような場合は中かっこが出てきて数式ができるのですが、
      (コピペすると中かっこが消えてしまいます💦)が、計算式は大丈夫です。
      
      
      先日、セルの抽出の仕方について質問した下記のような数式・入れ子がある場合の
      
      中かっこが出ずに、困っています。
      
      「この数式には問題があります。」というエラーが出てしまいます。
      
       A1に 123RE34L23S1
      
       B1に =-LOOKUP(1,-LEFT(O15,{1,2,3}))
      
      
      
      教えてくださった式をそのままコピペすれば、出来るのですが、自分で入れ子の計算式を作り変えると出来なくなります。
      調べたら数式を入力した後に、Ctrl+Shift+Enterを押したらよいと書いてありましたが、うまくいきません。
      「この数式には問題があります。」というエラーが出てしまいます。
      
      どのようにしたら入力できますでしょうか?
      
      後、lookupとleftの関数の前の−はどういう意味があるのでしょうか?
      調べてもわかりませんでした。
      
      そちらもあわせてご教授頂けると幸いです。
      よろしくお願いいたします。



      ++++++++++++++++++++
      OS      ⇒Windows XP
      Version⇒OTHER
      ++++++++++++++++++++




    [133546] Re[1]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2023/01/20(22:53))
    □U R L/
      >自分で入れ子の計算式を作り変えると出来なくなります。
      >「この数式には問題があります。」というエラーが出てしまいます。
      
      どんな数式だったんですか?
      
      ※それを題材にして話をした方が頭に入ると思います。
      
      




    [133547] Re[2]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ KEI -(2023/01/21(00:35))
    □U R L/


      説明不足ですみません。

       A1に 123RE34L23S1

       B1に =-LOOKUP(1,-LEFT(A1,{1,2,3}))   計算結果・・123

               

          =-LOOKUP(1,-LEFT(A1,{1,2,3}))   計算結果・・-123
              こちらはキーボードから手入力したもの。

      B1に 上の数式の中かっこを変更すると
      「この数式には問題があります。」というエラーが出てしまいます。
      中かっこの入力の仕方が悪いのでしょうか?
      どうしたら、上の式の結果になるようにできますでしょうか?
      よろしくお願いいたします。




    [133548] Re[3]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2023/01/21(09:08))
    □U R L/
      >B1に 上の数式の中かっこを変更すると
      1.どう変更しようとしたのですか?
        エラーになって入力できなかった数式を提示してください。
      
       2.その変更は、何をしたかったからですか?
       
      




    [133549] Re[4]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ KEI -(2023/01/21(11:47))
    □U R L/

      わかりにくくてすみませんでした。変な質問の仕方をしてしまいました。
      大変申し訳ありませんでした。

       B1の下段の式が手入力で変更した式だったです。
         今、再度自分の質問内容から自分の入力した式をコピペしたら出来ました。

       ネットで検索すると式を入力した後(確定前に)Ctrl+Shift+Enterを押すとなって
       いたので、ひたすら式の後にその操作をやっていて上手くいきませんでした。
       
      お付き合いいただきまして本当にありがとうございました。







    [133550] Re[5]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2023/01/21(13:09))
    □U R L/
      >ネットで検索すると式を入力した後(確定前に)Ctrl+Shift+Enterを押すとなって
      >いたので、ひたすら式の後にその操作をやっていて上手くいきませんでした。
      
      その式は、Ctrl+Shift+Enterでやっても、やらなくても同じ様に成立しますけど?
      
      やる必要はないですが、事前にやらなくていいかどうかは誰も分かりません。
      (事前に分かると言う人が居たら、昔やった経験があるからに過ぎません)
      
      通常は、やらないでやり、その結果うまく行かなければ、Ctrl+Shift+Enterでやることになります。
      
      やらなければならないと分かった時、その数式は「配列数式」と呼ばれます。または「CSE数式」とも呼ばれます。
      
      やらなくても成立する場合、その配列数式ではないのですが、
      これも配列数式と呼ぶ人達が存在するので困っちゃいます。
      
      単なる「配列を処理する数式」でしかなく、特別な呼称は不要な数式です。
      
      さて、そうなると、題材はこれにするしかないですか。
                 ↓
      >A1に 123RE34L23S1          → 976RE34L23S1 にします
      >B1に =-LOOKUP(1,-LEFT(O15,{1,2,3})) → =-LOOKUP(1,-LEFT(A1,{1,2,3})) にします
      >lookupとleftの関数の前の−はどういう意味があるのでしょうか?
      
      (1)まず、LOOKUP関数の仕様が分からないと始まらないです。
        検索値が検索範囲のどの値より大きい場合、当該配列の最終値をヒットします。(なお、エラー値は無視されます)
      
       例
       行  _A_  __B__  _C_  ___D___  _E_
        1    1    100    2  #DIV/0!   2 ← =LOOKUP(101,A1:D1)
        2   -1   -100   -2  #DIV/0!  -2  ← =LOOKUP(  1,A2:D2)
      
      (2)次に =LEFT(A1,{1,2,3})がどんな結果を生んでいるかと言えば
      
       行  ______A______  
        1  976RE34L23S1   {9.97,976} です、何故なら、A1の文字を左から、それぞれ文字数1,2,3 で切り取っているからです。
      
      (3)上の結果の前に「-」を付けると言う事は、-1を掛けることになります。
       なので、結果は {-9.-97,-976} に変わります。
      
       この結果配列に対して、検索値1を適用すれば、上記(1)で説明した通り、-976がヒットします。
      
       でも求める結果は-1なんか掛けたものではないので、再度「-1」を掛けて、元の数値に戻す訳です。
      




    [133551] Re[6]: 配列数式の{}の入力の仕方について-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ KEI -(2023/01/21(14:31))
    □U R L/

      半平太さま

        とても分かりやすい解説付きで感謝いたします。
        EXCEL初心者に何度も寄り添っていただきましてありがとうございます。
        
        




    [133552] Re[7]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ ねむねむ -(2023/01/23(09:44))
    □U R L/

      私はそれこそ配列を対象にするものを配列数式と認識してる。

      Ctrl+Shift+Enterは配列を対象としない関数などでは配列の中の一つの値しか計算に使わない
      という制限を外して配列数式として成立させるためのもの、という認識。

      で365以降では上記の配列の中の一つの値しか使わないという制限がなくなり配列数式が
      通常の入力で使えるようになった、と考えている。




    [133553] Re[8]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2023/01/23(10:18))
    □U R L/
      本格的な議論をする前にちょっと確認させてください。
      
      配列数式は「CSE数式」と呼ばれていますが、それは間違いと言う見解ですね。
      よく「配列数式なのでCtrl+Shift+Enterで入力してください」と言う人がいますが、これも間違いなんですね?
      マイクロソフトの説明で「配列数式として入力」と言う表現があるのですが、それは間違いなんですね?
      
      




    [133554] Re[9]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ ねむねむ -(2023/01/23(10:32))
    □U R L/

      >Ctrl+Shift+Enterは配列を対象としない関数などでは配列の中の一つの値しか計算に使わない
      >という制限を外して配列数式として成立させるためのもの、という認識。

      これからどうしてその疑問になるんだろう?

      それはそれとして検索したところマイクロソフトの説明だと半平太さんの認識のほうが正しいみたいだ。

      で365以降では配列数式が動的配列数式に変更された、ってことだろうか。




    [133555] Re[10]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2023/01/23(14:29))
    □U R L/
      争点がなくなった様なので、あれこれ考えるのは止めますが、
      
      >で365以降では配列数式が動的配列数式に変更された、ってことだろうか。
      動的配列数式と言う言葉は初耳なんですけども、どんな数式(の概念?)なんでしょうか?




    [133556] Re[11]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ ねむねむ -(2023/01/23(15:11))
    □U R L/

      もう少し検索してみたら今までの配列数式が基本、セル範囲を選択して入力しその範囲内だけに結果を返すのに対して
      365以降では返す配列の大きさが固定されていないことをいうらしい。

      h ttps://support.microsoft.com/ja-jp/office/%E5%8B%95%E7%9A%84%E9%85%8D%E5%88%97%E6%95%B0%E5%BC%8F%E3%81%A8%E3%82%B9%E3%83%94%E3%83%AB%E9%85%8D%E5%88%97%E3%81%AE%E5%8B%95%E4%BD%9C-205c6b06-03ba-4151-89a1-87a7eb36e531




    [133557] Re[12]: 配列数式の{}の入力の仕方について-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2023/01/23(19:32))
    □U R L/
      オフィシャルのドキュメントで使われている言葉だったんですねぇ・・
      情報、ありがとうございます。
      
      >もう少し検索してみたら今までの配列数式が基本、セル範囲を選択して入力しその範囲内だけに結果を返すのに対して
      >365以降では返す配列の大きさが固定されていないことをいうらしい。
      なるほどです。
      この記事は、数式の返り値の数が動的に変わる場合、出力セル範囲も動的に変わると言う話と読みました。
      
      計算メカニズムの変革については全く言及されてないので、私としてはちょっと残念です。
      
      まぁ、レガシーの配列数式については、考える必要すらない時代に入ってきていますので、
      やむを得ないと思うしかありません。
      



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G