• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:関数のどこを書き換えれば実現できるのでしょうか)

関数を書き換えると実現できるのか?

このQ&Aのポイント
  • 関数の処理方法で問題を抱えている場合、関数を書き換えることで解決できる可能性があります。具体的にどのように書き換えるべきかは、詳細な情報が必要です。
  • ARRAYFORMULA関数を書き換えるか、スクリプトを0から書き直す必要があるかは、具体的な要件によります。解決策を見つけるためには、問題の詳細な内容が必要です。
  • 解決方法を知るためには、問題がどのように起こっているか、想定される結果がどのようなものかを詳しく説明してください。それによって、具体的なアドバイスが得られる可能性が高まります。

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

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.5

セル関数での対応ですが、添付の図の様な事がしたいのであれば、Sheet2のA2に↓の式を入れ、横と下にコピーでどうでしょう =OFFSET(Sheet1!$A$1,COUNTA(Sheet1!$A:$A)-ROW()+MOD(ROW(A2),2)*2,COLUMN()-1)

megumi199
質問者

お礼

mt2015さま お礼のご連絡が遅れてしまい大変申し訳ありませんでした! 本当にいつも親身に教えてくださり本当にありがとうございます。 風邪をひいてしまってずっと寝込んでしまいました。 今日ようやくベッドから降りれるようになって。 さきほど、アドバイス頂いた方法で完ぺきに私のしたかったことが実現できました! 本当に丁寧にご説明くださりありがとうございました。 また、ご連絡が遅れてしまい本当に本当に申し訳ありませんでした! 今後とも何卒よろしくお願いいたします! めぐみ

その他の回答 (5)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.6

>これ以上、ご面倒おかけしたくないのでご返信は結構です。 とのことですので、以下の説明をして下ります。 =QUERY({ARRAYFORMULA(ROW('Sheet1'!A2:K)),'Sheet1'!A2:K},"select Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12 where Col2 Is Not Null and Col1 + 19 > " &COUNTA('Sheet1'!A2:A) &" order by Col2 desc, Col1 desc") この計算式の意味 Sheet1のA2~K列の末尾まで値群が対象です。 Col1が取り出すときの行番号群です。 Col2が取り出したA列の値群です。 Col3が取り出したB列の値群です。 省略 Col12が取り出したK列の値群です。 取り出すときの条件 ・A列が空欄ではない、かつ ・末尾行から上方向に20行          各行のソート順 第一キー:A列の降順 第二キー:行番号の降順 です。     

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.4

>私のしたいことのイメージは下記のアドレスにて共有しました。 このような話であれば、 提示された「スクリプト」の末尾 order by Col2 desc, Col1 desc") これを単に order by Col2 , Col1 desc") とすれば期待の結果になるものと思います。

megumi199
質問者

お礼

何度も申し訳ありませんでした。 思った通りの動作はしませんでした... これ以上、ご面倒おかけしたくないのでご返信は結構です。 本当に見知らぬわたくしにこんなに熱心にご指導くださりましてありがとうございました。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

スクリプトに order by Col2 desc, Col1 desc とありますので、 おそらく、A2の行から10行を(単純に)逆順に並べ替えているのではなく A列の降順に並べ、更に、 A列に同じ値があったら行番号の降順に並べているだろうと思います。 行の並びが逆転しているように見えるのは、 たまたま、Sheet1のA列が昇順に並んでいるからだろうと思います。 だとすれば、、 Sheet1のA列を期待のように並ぶよう書き換える、 あるいは、 どこかに、並べ替え専用の列を設け、 課題スクリプトを書き換えるという対応が順当と思います。 課題スクリプトは、SQL文の並べ替え機能を使っていますので 期待のような結果にするためには、 ソートキー(並べ替えに使う列)が必要です。 少なくとも私は、期待の並べ替えをSQL文で、 かつソートキーの列無しで実現することはできません。 もし、 並べ替え元の範囲(Sheet1)がA2からK11固定で かつ、 出力先範囲もA2からK11セル固定でよければ、 出力先範囲のセル全数に =INDEX('Sheet1'!$A$2:$K$11,(IF(MOD(abs(ROW()-12),2)=1,abs(ROW()-12)+1,abs(ROW()-12)-1)),COLUMN(),1) といった計算式を埋めることで期待の結果になるだろうと思います。 追記 Sheet1とか、A2:Kといった記述から 多くの皆さんはエクセルの話と誤解しましょう。 まだまだエクセルが事実上のスタンダードですから。 なので、質問内容の冒頭で、 Googleのスプレッドシートであることを明示したほうがいいと思います。

megumi199
質問者

お礼

HohoPapaさま お世話になっています、めぐみです。 貴重なアドバイスを頂きまして大変ありがとうございます。 また、懇切丁寧に教えてください本当にありがとうございました。 早速HohoPapaさまから頂いた関数を試してみましたが私の説明不足の問題で、想定していた結果にはなりませんでした。 いろいろと試してみたのですがよくわからず、再度ご連絡させていただくこととなりました(大変申し訳ありません)。 ただ、ものすごく私のしたいことに近づいているのは感覚で分かるのですが。。。 私のしたいことのイメージは下記のアドレスにて共有しました。 https://drive.google.com/file/d/12_rdt0rzdjymdkBrOCYO2IU7xP775sOI/view?usp=sharing グーグルスプレッドシートSheet1,Sheet2を共有しました。 https://docs.google.com/spreadsheets/d/1lDSheilFLCour7o-DT8cb64bcxrkjXqGH_i1HzWjH5M/edit?usp=sharing 私のしたいことは、下記のSheet1をSheet2のようにしたいです。 ※Sheet2に関数を埋め込むことで、Sheet2のように表示させたいです。 ※Sheet1の”データがある一番最後の行から20行”を処理します。 お忙しいところ大変恐れ入りますが、HohoPapaさまにお頼りするしかなく、なにとぞご指導いただきたくなにとぞよろしくお願いいたします。 めぐみ

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

済みません、 一つ伺い損ねてました。 Excelですか? https://xn--t8j3bz04sl3w.xyz/spreadsheet/arrayformula/1918/

megumi199
質問者

補足

Excelには「arrayformula関数」はありません。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.1

確かに、 サポートが無いと、困りますよね。 1から、何がしたいか、 お教え頂ければ、 ある程度、技術が 既に、浸透していて 一定、 誰でも、読める、 そういった、意味に おいても メンテナンス性の、高い、 しかも、 ある程度は、古いバージョンでも 稼働する、 プロ志向の、高い 新たな式を、 ご提供できる事も あると、思います。 如何でしょうか? お話し、頂けますでしょうか?

関連するQ&A