例えばIF関数なら、'=IF(B2>=80,"合格","不合格") <セルB2はA君の得点>
『「もしA君が80点以上なら合格、そうでないなら不合格」と表示をする』と
このように誰が見ても分かるような解説が欲しいのです。
知りたいのは次の関数の組み合わせです。
なるべく細かく知りたい。例えば( )ごとに何が言いたいのか知りたい。
'=INDEX(シート1!$D:$D,SMALL(INDEX((OFFSET(シート1!$D8,,MATCH
($E$2,シート1!$E5:$AI5,0),11)<>H5)*100+ROW(D8:D18),),COLUMN(A1)))
シート1の各セルは D列に氏名(11人)、D8は一番最初の人の氏名、
E5:AI5は日付、D8:D13は氏名 (縦軸が氏名、横軸が日付)
シート2の各セルは H6に本関数が入っている。E2は日付、H5は漢字で「夜勤」
(E2の日付の時は誰が夜勤かをH6に自動表示される)
特に、「<>H5)*100+ROW(D8:D18),)」の所が分からない。
宜しくお願いします。
No.4ベストアンサー
- 回答日時:
この関数には理解しがたいところがたくさんあって、どうなっているか知りたく回答が寄せられてくるのを期待していました。
試しに書かれているような表を実際に作ったところ正しく動くのが不思議なくらいですなかなか次の解答がでないので、もう限界かなということでわかる範囲と一部想像で書かせてもらいます。想像したところ、わからないところははっきりそう書きます。できればわかる方のフォローをお願いします。
まず特にと書かれている部分から説明します。
○○<>H5 は条件式です。セルの値が「夜勤」でないかどうかをチェックしています
式はチェックし結果を、真(TRUE)偽(FALSE)かで返答します。
()*100 で()の中を100倍します。ここで奇妙なのは()の中は真か偽しかありません
ここでは裏技が使われています、真か偽は計算する上で数値で管理しています。
一般的には-1と0の組み合わせで使われますが、エクセルでは1と0です。
どこかのセルで=true*2を入れてみると2が返されてくることからわかります
従って式の意味は()の中の評価によって0か100のどちらかという意味になります
式の中にこのような裏技が使われているところがあるのをみると、知らなかった裏技がたくさんあるようです。式の続きです。
+ROW(D8:D18) ()のセルの行番号を加えよです
試しにどこかのセルに式を入れたところ8が返されてきました
なぜ8にしないのかは疑問です(さいごにあるCOLUMN(A1)もおなじです)
間に行が挿入されたときの対策なら、ROW(シート1!D8:D18)です
-- 追加解釈があります 後ほど該当の所で --
,) 引数はここまでで、次の引数に0を入れて(または規定値にして)計算せよ
特に以外の部分の説明に入ります。シート1の表を日勤表とさせてもらいます。ネストの一番深いところからみていきます。
MATCH($E$2,シート1!$E5:$AI5,0)
そのままなので理解できると思います。日勤表に$E$2(日付)がるのは何列目か。
OFFSET(シート1!$D8,,該当日のある列,11)
日勤表の左上角から0行目、該当日のある列のデータを縦に11個取り出せ
要するに該当日の各人の出勤形態を順番に(配列で)答えよという意味です
これを該当日の出勤形態とします(次からは断らなくてもいろいろ使います)
この次に奇妙な式がでてきます。ここからは想像が入ってきます。
(該当日の出勤形態<>H5)*100+ROW(D8:D18)
出勤形態は数値でなく配列(数字の並び)です。どうやって計算するのか?
ROW(:)を加えています。これも8 9 10 11と並んだ配列です
想像になります。配列どうし計算は順番にしてくれるのでは(行列計算と同じ)
こうだとして話を続けます
INDEX(出勤形態の値,)
,の後が省略されていますから、そこを全部(想像です)取り出せという意味です
何もしていないように見えます。
想像ですが次のSMALLの引数に計算式が使えないため配列に変換しているのかも
ならINDEXでは第1引数に計算式がどうして使えるのかという疑問もでてきます
SMALL(出勤形態の値,COLUMN(A1))
出勤形態の値一覧で、COLUMN(A1)の値(1)番目に小さい値(最小値)はいくらか
出勤形態で夜勤ならその人の行番号、でなければ100+行番号が入っています
計算結果は、夜勤の人の行番号になります。
奇妙なところはCOLUMN(A1)です。なぜ1にしなかったのか?不明です
INDEX(シート1!$D:$D,夜勤の人の行番号)
この部分だけみると簡単です。名列表から該当者の名前を取り出せになります
以上まともに動くためにはどうなっていないといけないなどかの想像を加えて解説しました。想像と書いたところが正しいのかどうか。できればフォローお願いしたいところです。
大変大変大変有難うございました。
それしか言えません。
あなたの回答を紐解きとしてまた勉強します。
関数には色んなやり方、裏技等があることは分かりました。
有難うございました。
No.3
- 回答日時:
それから、「…の所が分からない」は扨て置き、貴方のシート2のセル H6 は何と表示されてゐるのですか?結果を検証する爲に教へてください。
H6の表示(求めたい表示)は氏名です。
シート2に「その日の夜勤は誰か」を表示します。
従って、1日~31日の夜勤は誰か?(A君~K君の内誰か)を
表示させたいのです。
実際にはH6だけではなく、H16,H26・・・と31日分あります。
また、今回は夜勤のみ質問しましたがその他(日勤、早出等)も
あります。(シート2は日付ごとの簡易な表が31個ある)
つまり、シート1の月間勤務表からシート2にその日ごとの勤務を
反映するということです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) IFERROR、SMALL関数について 2 2022/08/22 23:40
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
関連するカテゴリから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のマクロで、セルを結合し...
おすすめ情報