電子書籍の厳選無料作品が豊富!

こんにちは。

先日こちらで質問した者です。
リストに日付を入力すると、指定した項目がカレンダーへ反映されるという仕様になるよう、アドバイスをいただきましたが、その後、反映先の項目の行数を増やすことになりました。

ただ行を挿入するだけだと、違う値を持ってきてしまうようでうまくできません。
現在反映させたいセルに入力している配列数式は以下です。
=IFERROR(INDEX(ガントチャート!$D:$D,AGGREGATE(15,6,ROW($1:$999)/(ガントチャート!$F$1:$F$1004=INDEX(D:D,INT(ROW()/4)*4-1)),MOD(ROW()+1,4))),"")

現在は日付1日あたり、3行まで項目が表示されるようになっていますが、
これを7行に増やしたいです。
そのためには、どの部分をどのように編集すればよろしいでしょうか?

見えにくいと思いますが、反映先のカレンダー、反映元のリスト、二つの画像も添付します。

「関数について詳しい方、教えてください。」の質問画像

A 回答 (3件)

No2です。



MOD(ROW()+5,8)

INT((ROW()-3)/8)*8+3
にすれば、多分うまくいくのではないでしょうか?

式を少しでも短くしたければ、4行目の式で
MOD(ROW(A1),8)

INT((ROW(A1))/8)*8+3
でもよろしいかと。
    • good
    • 0
この回答へのお礼

諸事情がありレスポンスできておらず申し訳ございませんでした。
行を追加し7行に変更後、アドバイスいただいたMOD関数とINT関数の部分を編集してみましたが、うまく反映されませんでした。

一旦今回は3行のままで進めることにしたいと思います。
複数にわたりアドバイスいただき本当にありがとうございました。
お手数をおかけして恐縮でしたが、非常に助かりました。

お礼日時:2020/09/30 10:24

No1です。



今、エクセル環境がないのでちゃんと確認できないのですが・・

>INT(ROW()/4)*4-1」と「MOD(ROW()+1,4)を、
>INT(ROW()/8)*8-1」と「MOD(ROW()+1,8)に変えるということでよろしいでしょうか?
手計算でやってみても、No1で説明した意味合いの値にはなりませんよね?
No1にも書きましたが、それぞれの式をセルにいれて計算させてみれば、違っていることがわかるはずです。

ROW()±m、式±n のm、nの値を調整することで、目的の値を示す式にできるはずです。
前者は、1~7の値を繰返すように、後者は、3、11、19…を7回(8回)繰返して段階的に増加して行く結果になればよいはずです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
理解力が低く申し訳ありません。

やりたいこととしては、反映先のセルの行数を3行から7行に変更したいというものなのですが、今の数式の形を保ったままで、そのうちどこかの数字を変更するだけで対応可能と認識していますが、ここまでは相違ないでしょうか?

ずばり、どこの数字を何に変えればよいのかがわからず・・・。

お礼日時:2020/09/14 11:31

こんにちは



質問履歴が非公開(=前回の質問がわからない)なので、はっきりとはしませんが、多分、私の回答ではないかと推測します。(AGGREGATE関数を使った回答をしているのは私だけのようなので・・・)
また、添付図のシートは項目が7行分にはなっていないようなので、よくわかりませんが…

>どの部分をどのように編集すればよろしいでしょうか?
シートの構成が同じ形式であると仮定しても良いのなら、関数式中の「INT(ROW()/4)*4-1」と「MOD(ROW()+1,4)」を修正すれば良さそうに思われます。

それぞれの式を、各セルで計算させてみればわかると思いますが、以下のような結果になるはずです。
・前者は、当該セルが『その日の項目の何番目(何行目)に当たるか』の数値を表します。
 項目が3行単位の場合であれば、「1、2、3」 を繰り返すようになっています。

・後者は、各セルの日付として参照すべき行番号を計算しています。
 (同じ日付の項目内では、当然ですが、皆同じ行番号になります)
 例えば、3、3、3 7、7、7 11、11、11 …といった具合です。

今回のご質問によると、項目が7行(=日付を含めて8行単位)になるのであれば、乗・除の数を4→8に変えて、「上記の意味の値」になるように端数部分を調整すればよいはずです。

なお、
>セルに入力している配列数式は以下です。
もしも、「配列数式」として入力しているのであれば、その必要はありません。
(Ctrl+Shift+Enter入力の必要は無いという意味です)
計算内容は配列計算になっていますが、通常の関数式と同様の扱いで、ちゃんと計算できるはずです。
    • good
    • 0
この回答へのお礼

ありがとうございます。質問履歴を公開にしました。
また、添付した図のシートは3列の状態のものです。
わかりづらくすみません。

INT(ROW()/4)*4-1」と「MOD(ROW()+1,4)を、
INT(ROW()/8)*8-1」と「MOD(ROW()+1,8)に変えるということでよろしいでしょうか?

お礼日時:2020/09/11 14:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!