No.2ベストアンサー
- 回答日時:
続けてお邪魔します。
>実はもっと複雑1Aとか2Aは20種類あります。
元データに重複はいくつあっても構いません。
前回の数式は最大5個まで表示する数式です。
>複数のダブリはMOD(ROW(),5)の5で数を・・・
この部分はSmall関数の何番目を返すか?の「順位」の部分になります。
大切なのはどの行に数式を入れるかによって決まってきます。
お手元の「当番表」の配置がこちらでは判らないので勝手に前回のような配置にした場合の数式でした。
6行目に入れているので
>MOD(ROW(),5) は「1」が返り、下へフィル&コピーするたびに「2」 → 「3」 ・・・
となります。
仮に前回の配置の1Aの場合(C6の場合)の数式は
「マスター」シートの日にちが一致する列で「1A」と入力されている行のC列を小さい順に表示する!という配列数式です。
これを下のC11セルにも同じ数式を入れないといけないので
>MOD(ROW(),5) としてみました。
(11行目に上記数式を入れるとC6セルと同じように「1」が返ります)
※ ここで当方が文章でいくら説明してもお手元の「当番表」の配置が判らない限り
おそらく数式を投稿しても無意味な数式になると思います。
※ 以下は余談 ※
>MOD(ROW(),5)
の部分は
>ROW(A1)
としても構いません。
ただこの場合、C11セルの数式は2か所手を加えて、
>ROW(A11)
となっている部分を
>=ROW(A1)
にする必要があります。
尚、配列数式の説明は割愛します。m(_ _)m
No.3
- 回答日時:
続けてお邪魔します。
配列数式の件ですが・・・
>どのようにして勉強しましたか?
コレ!といって勉強はしていません。
ただ、このサイトで回答をしているうちに、配列数式で処理する方が簡単な場合が何度もありました。
そのため、ネットで検索するといくらでも配列数式に関するものがありましたので
そちらで自分なりに理解したつもりです。
(たとえば、一致する条件だけを抽出する場合など・・・)
とりあえず参考になるかどうか判りませんが、
今回の場合の理屈を↓の画像で説明します。
A列が「A」の場合のB列だけを表示する方法にしてみました。
D・E列を利用し、結果としてF列の結果を導き出しています。
D4セルに
=A4="A"
という数式を入れフィルハンドルで下へコピー!
これでA列が「A」の場合の行だけた「TRUE」になります。(その他は「FALSE」)
E4セルに
=IF(D4=TRUE,ROW(),"")
とし、下へフィル&コピー!
これでA列が「A」の場合のみの行番号だけが表示されます。
結果のF4セルに
=IF(COUNT(E$4:E$1000)<ROW(A1),"",INDEX(B$4:B$1000,SMALL(E$4:E$1000,ROW(A1))-3))
エラー処理も含めて、E列に数値(行番号)が入っている行のB列データを行番号の小さい順に表示する数式です。
ここで気を付けなければならないのは
INDEX関数の範囲を何行目からするか?というコトです。
今回は4行目以降を範囲指定し、その行番号を掛け合わせていますので、
仮にINDEX関数範囲の1番目がヒットしても4番目以降が表示されてしまいます。
そのため数式内の「-3」を入れないとINDEX関数の範囲の4番目から表示されます。
ちなみに、数式内の「ROW(A1)」はSMALL関数の順位に当たります。数式が入っている行(F4は「1」、F5は「2」・・・となります。
これらの操作を一気に行っているのがH列で、H4セルには
=IFERROR(INDEX(B$4:B$1000,SMALL(IF(A$4:A$1000="A",ROW(A$4:A$1000)-3),ROW(A1))),"")
配列数式なので、当然Ctrl+Shift+Enterとし、フィルハンドルで下へコピーしています。
今回の質問は上記方法の応用編となります。
この程度でよろしいでしょうかね?m(_ _)m
No.1
- 回答日時:
こんにちは!
https://oshiete.goo.ne.jp/qa/10563263.html
↑のサイトの関連ですね。
>1A が5つまで重複している場合は
というコトなので、↓の画像のように「当番表」に手を加えました。
最大5行としています。
画像では「当番表」のC6セルに
=IFERROR(INDEX(勤務表!$C$10:$C$27,SMALL(IF(OFFSET(勤務表!$C$10:$C$27,,MATCH($F$3,勤務表!$D$6:$AI$6,0),,1)=B$6,ROW(C$10:C$27)-9),MOD(ROW(),5))),"")
配列数式なのでCtrl+Shift+Enterで確定!(←必須★)しC10セルまでコピーしています。
E6・G6セルへコピーは前回同様Ctrlキーを押しながらドラッグします。
次にC6セルをCtrlキーを押しながらC11セルにコピー&ペースト
数式バー内で1か所手を加えます。
>=B$6
を
>=B$11
とします。結局C11セルの数式は
=IFERROR(INDEX(勤務表!$C$10:$C$27,SMALL(IF(OFFSET(勤務表!$C$10:$C$27,,MATCH($F$3,勤務表!$D$6:$AI$6,0),,1)=B$11,ROW(C$10:C$27)-9),MOD(ROW(),5))),"")
となりますので、同じくCtrl+Shift+Enterで確定 → C15セルまでフィル&コピー!
E11・G11セルへのコピーは同様にしてください。
※ 「勤務表」シートは1名あたり2行使うようになっていますが、
上側の行のみ入力する!という前提です。m(_ _)m
この回答へのお礼
お礼日時:2018/06/20 23:42
実はもっと複雑1Aとか2Aは20種類あります。
複数のダブリはMOD(ROW(),5)の5で数を調整できますか?
1つしかないのなら5を1にすればいいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 16:55
- Excel(エクセル) 重複データの抽出について 2 2023/07/21 14:52
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/06/23 15:02
- Excel(エクセル) エクセルの数式について教えてください。 7 2023/06/18 10:16
- その他(Microsoft Office) エクセルについて教えてください。 2 2022/10/20 14:55
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/07/08 13:46
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- PDF PDFが勝手に変更されてしまいます 3 2022/04/12 01:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
【Microsoft Office Excel Comp...
-
Excelはなんで先頭の0を消すん...
-
Excelのセルを飛ばして入力する
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excelのオートフィル
-
Excel 2019 のピボットテーブル...
-
スプレッドシート クエリ関数 1...
-
excelの不要な行の削除ができな...
-
Excel初心者です。 詳しい方、...
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
EXACT関数とIF関数の組み合わせ...
-
Excelのグラフ軸について
-
スマートな関数を教えて下さい。
-
Excelで全角を半角にしたいので...
-
【マクロ】エクセルにかいてあ...
-
Excel:一部のフォントでセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報