• ベストアンサー

エクセル:”特定の行”を非表示

(MAC10.6,Office2011MACのエクセルを使っています。VBA初学者です。)  はじめまして、よろしくお願いします。 A列に日付(A1にM月D日を入力し、A2以下に+1)、B列に”三交代”の曜日を記入(月AM、月PM1、月PM2)した勤務表を作っています。 <質問>土・日曜日の「PM1、PM2」の行を非表示にできないか悪戦苦闘しています。どなたかご教示いただけないでしょうか? なお、オートフィルターではA1の入力日によってうまく反映できません。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

No2の補足と参考意見です。 現在はB列に曜日と三交代のパターンが入力されているようですが、B列にわざわざ曜日を入力するのは面倒なので、A列はセルの書式設定の表示形式をユーザー定義にして「m"月"d"日"(aaa)」のようにする、あるいはB列に列を挿入し「=TEXT(A2,"aaa")」などの数式で曜日のセルを設け、B列はAM、PM1、PM2の3種類の文字を入力するようにしたほうが、入力も簡単で集計やオートフィルタの操作も簡便にできるのでお勧めです。

dorofenta
質問者

お礼

そうですね。発想を変えて考えます。ありがとうございました。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>なお、オートフィルターではA1の入力日によってうまく反映できません。 回答者に質問内容を把握してもらいたいなら、どのようにうまくいかないのか具体的に操作を例示したほうがよいと思います。 もし添付画像のようなレイアウトのデータがあり、A列の日付の曜日が土曜または日曜で、かつB列の2文字目から2文字に「PM」が入っているものを除外するという条件なら、数式を使ったフィルタオプションの設定を利用します。 例えば添付画像のようにE2セルに以下の式を入力し、「フィルタオプションの設定」(Mac版でも同じ機能があると思います)で検索条件範囲を「E1:E2」にしてください。 数式:=NOT(AND(WEEKDAY(A2,2)>5,MID(B2,2,2)="PM")) B列の値だけで対応するなら、以下のような関数でもOKです。 =NOT(AND(OR(LEFT(B2,1)="土",LEFT(B2,1)="日"),MID(B2,2,2)="PM"))

dorofenta
質問者

お礼

(言われる通り、例示が必要な事がわかりました。ありがとうございました。) =NOT(AND(OR(LEFT(B2,1)="土",LEFT(B2,1)="日"),MID(B2,2,2)="PM")) こういう方法があるのですね。参考になりました。

  • kool_noah
  • ベストアンサー率33% (95/285)
回答No.1

||A列 |B列 | |1|M月D日 |月AM、月PM1、月PM2| |2|M月D日+1|火AM、火PM1、火PM2| |3|M月D日+2|水AM、水PM1、水PM2| |4|M月D日+3|木AM、木PM1、木PM2| |5|M月D日+4|金AM、金PM1、金PM2| |6|M月D日+5|土AM、土PM1、土PM2|←ここの行を非表示 |7|M月D日+6|日AM、日PM1、日PM2|← 6と7の行を非表示にしたいということでしょうか? それともB6とB7だけを非表示? 行を非表示にするなら行を選択して右クリック非表示 VBAでやるなら、Hiddenプロパティで表示・非表示を切り替える 一行ずつ日付を見て行って日付から曜日算出して土・日ならその行を非表示 もしくはB列を読み込んで頭が土か日なら非表示とか B6とB7だけを非表示はできないと思います 条件付き書式とかVBAでセルを空白とか中身を見えないようにするとかなら出来そうですけど

dorofenta
質問者

お礼

さっそくご回答をいただきながら御礼が遅れて申し訳ありませんでした。

dorofenta
質問者

補足

お返事ありがとうございます。 || A列 |B列 | |1|M月D日|日AM |2|M月D日|日PM1 |←ここの行を非表示 |3|M月D日|日PM2| |← |4|M月D日+1|月AM |5|M月D日+1|月PM1 |6|M月D日+1|月PM2 -- 説明不足で申し訳ありません。上記の2~3行について”非表示”できないか教えて下さい。

関連するQ&A