ことしの初夢、何だった?

カレンダーからデータの抜き出し整理を行い他のセルにその情報を集め空欄は上に詰めたいという質問をさせて頂きました。

https://oshiete.goo.ne.jp/qa/13969847.html

そこでお教えいただいた関数がオフィス2019に対応せず他の方法も教授頂いたのですが自分でアレンジして使用できるほど関数に詳しくなく手が出ない状況です。

お教えいただいた関数はカレンダーの各日にち3枠に対して担当ABの割り振りのうち担当Bのみ1か月分をリストBに集約し空欄がある場合は上に詰めるといった内容です。

以下関数転記
=IFERROR(INDEX(B$4:AC$23,INT(INT(AGGREGATE(15,6,(INT((COLUMN(B$4:AC$23)-2)/4)+INT((ROW(B$4:AC$23)-4)/4)*7)*10+MOD(ROW(B$4:AC$23)-4,4)/(MOD(COLUMN(B$4:AC$23),4)=0)/(MOD(ROW(B$4:AC$23),4)>0)/(B$4:AC$23<>""),ROW(A1))/10)/7)*4+MOD(AGGREGATE(15,6,(INT((COLUMN(B$4:AC$23)-2)/4)+INT((ROW(B$4:AC$23)-4)/4)*7)*10+MOD(ROW(B$4:AC$23)-4,4)/(MOD(COLUMN(B$4:AC$23),4)=0)/(MOD(ROW(B$4:AC$23),4)>0)/(B$4:AC$23<>""),ROW(A1)),10)+1,MOD(INT(AGGREGATE(15,6,(INT((COLUMN(B$4:AC$23)-2)/4)+INT((ROW(B$4:AC$23)-4)/4)*7)*10+MOD(ROW(B$4:AC$23)-4,4)/(MOD(COLUMN(B$4:AC$23),4)=0)/(MOD(ROW(B$4:AC$23),4)>0)/(B$4:AC$23<>""),ROW(A1))/10),7)*4+3),"")

この関数を使って担当Aの30日分の割り振りをリストAに集約空欄は上に詰めるように処理するためにはどのように上記を変更すればよいかお教えいただけル方
大変申し訳ないですがよろしくご教授くださいます様お願いします。

「エクセルのデータ整理」の質問画像

A 回答 (2件)

こんばんは



前回回答者ですけれど・・

それよりも計算効率を良く変更して、さらにAでもBでも対応できる方法を回答しておきましたけれど・・・???
    • good
    • 0
この回答へのお礼

大変失礼しました。もうご回答いただけないかと思い質問をくりかえしました。大変助かりました。

お礼日時:2024/11/29 05:18

以下のご質問と同じだと思われます。


https://detail.chiebukuro.yahoo.co.jp/qa/questio …
上記のご質問で有効な回答がついているように見えますが、まだ、解決していないということでしょうか?

仮に、私が数式を作成するなら、上記質問サイトのunc********さんの数式を若干修正して、AF3セルに

=IFERROR(INDEX(A$1:AC$27,MOD(AGGREGATE(15,6,(ROW(A$1:AC$27)+(COLUMN(A$1:AC$27)+29*INT(ROW(A$1:AC$27)/4))*100)/(A$1:AC$27<>"")/(MOD(ROW(A$1:AC$27),4)>0)/(ROW(A$1:AC$27)>4)/(A$3:AC$3=AF$2),ROW(A1)),100),MOD(INT(AGGREGATE(15,6,(ROW(A$1:AC$27)+(COLUMN(A$1:AC$27)+29*INT(ROW(A$1:AC$27)/4))*100)/(A$1:AC$27<>"")/(MOD(ROW(A$1:AC$27),4)>0)/(ROW(A$1:AC$27)>4)/(A$3:AC$3=AF$2),ROW(A1))/100),29)),"")

を入れて下方向へフィルコピーし、AH3セルには、

=IFERROR(INDEX(A$1:AC$27,MOD(AGGREGATE(15,6,(ROW(A$1:AC$27)+(COLUMN(A$1:AC$27)+29*INT(ROW(A$1:AC$27)/4))*100)/(A$1:AC$27<>"")/(MOD(ROW(A$1:AC$27),4)>0)/(ROW(A$1:AC$27)>4)/(A$3:AC$3=AH$2),ROW(A1)),100),MOD(INT(AGGREGATE(15,6,(ROW(A$1:AC$27)+(COLUMN(A$1:AC$27)+29*INT(ROW(A$1:AC$27)/4))*100)/(A$1:AC$27<>"")/(MOD(ROW(A$1:AC$27),4)>0)/(ROW(A$1:AC$27)>4)/(A$3:AC$3=AH$2),ROW(A1))/100),29)),"")

を入れて同じく下方向へフィルコピーするという数式にするかもしれません。

前提として、ご質問者が掲出された画像のAF2セルとAH2セルの表示形式をユーザー定義で「"リスト"@」としておき、AF2には「B」、AH2には「A」を入力するものとします。これは逆ににして、AF2には「A」、AH2には「B」を入力してもOKです。入力された文字の担当のリストがAF3、AH3以下に表示されることになるので、逆にすればリストが逆になるだけだからです。

なお、数式は長くなりますが、AF3セルに上記数式中のAF$2以外は全て絶対参照にした数式、

=IFERROR(INDEX($A$1:$AC$27,MOD(AGGREGATE(15,6,(ROW($A$1:$AC$27)+(COLUMN($A$1:$AC$27)+29*INT(ROW($A$1:$AC$27)/4))*100)/($A$1:$AC$27<>"")/(MOD(ROW($A$1:$AC$27),4)>0)/(ROW($A$1:$AC$27)>4)/($A$3:$AC$3=AF$2),ROW(A1)),100),MOD(INT(AGGREGATE(15,6,(ROW($A$1:$AC$27)+(COLUMN($A$1:$AC$27)+29*INT(ROW($A$1:$AC$27)/4))*100)/($A$1:$AC$27<>"")/(MOD(ROW($A$1:$AC$27),4)>0)/(ROW($A$1:$AC$27)>4)/($A$3:$AC$3=AF$2),ROW(A1))/100),29)),"")

を入れて、下方向へフィルコピーし、AH3セルはAF3セルをコピーし、結果が表示されたら、下方向へフィルコピーするという方法もあると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
何とか解決いたしました。併せて勉強させていただきますね。

お礼日時:2024/11/29 23:18

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A