グッドデザイン賞を受賞したウォーターサーバー >>

3行2列のブロックからできているテーブルより特定の文字列(数値、日付、文字列)を、左上から右下のブロックまで行番号の小さい順に、かつ列番号の小さい順に複数検索し、該当ブロックの検索値の一つ上のセルと一つ下の左右のデータを取出して一覧表を作成したいと思います。

因みに、A列B列だけだとしたら、
セル11の取り出しは、 {=IF(COUNTIF($A$1:$A$18,$M$1)<ROW($A1),"",INDEX($A$1:$A$18,SMALL(IF($A$1:$A$18=$M$1,ROW($A$1:$A$18)-1),ROW($A1))))}で
セル26の取り出しは、上を列方向にオートフィルして取り出せました。
同様に、データ11とデータ26も取り出せました。
また、コード11とコード26の取り出しは、難しかったですが
{=IF(COUNTIF($A$1:$A$18,$M$1)<ROW($A1),"",INDEX($B$1:$B$18,SMALL(IF($A$1:$A$18=$M$1,ROW($B$1:$B$18)+1),ROW($A1))))}としたら、
取り出せました。

しかし、質問のように複数の列がある場合にはどうすればよいのか、または別の関数(例えばSUMPRODUCT関数など)を利用しなければできないのか、としたら、どういう計算式になるのか、まったく混迷しています。
関数だけで解決できる方法が有りましたら是非とも教えてください。

「Excel関数: テーブルの複数行列範囲」の質問画像

A 回答 (3件)

[No.2]からの続き


7.次式を入力したセル Q5 を下方にオートフィル
 ̄ ̄=IFERROR(SMALL(TmpTbl,ROW(A1)),"")
8.セル M5 に次式を入力
 ̄ ̄=IF($Q5="","",OFFSET($A$1,$Q5/10-2,MOD($Q5,10)-1))
9.セル N5 に次式を入力
 ̄ ̄=IF($Q5="","",OFFSET($A$1,$Q5/10,MOD($Q5,10)-1))
10.セル O5 に次式を入力
 ̄ ̄=IF($Q5="","",OFFSET($A$1,$Q5/10,MOD($Q5,10)))
結果を此処の添付図に示しています。
「Excel関数: テーブルの複数行列範囲」の回答画像3
    • good
    • 0

[No.1]からの続き


此処の添付図に示す作業表を作成します。
なお、セル M1 に検索日付(例として、2018/12/3)を入力しておきます。
2.次式を入力したセル R2 を下方にズズーッと(取り敢えず 10行目まで)オートフィル
 ̄ ̄=IFERROR(SMALL(IF(table=$M$1,ROW(table)),ROW(A1)),0)
 ̄ ̄【お断り】上式は必ず配列数式として入力のこと
3.次式を入力したセル S2 を右方に9列、下方に8行オートフィル
 ̄ ̄=IFERROR(SMALL(IF(OFFSET($A$1,$R2-1,,,10)=$M$1,COLUMN(table)),COLUMN(A1)),"")
 ̄ ̄【お断り】上式は必ず配列数式として入力のこと
4.次式を入力したセル AC2 を下方にズズーッとオートフィル
 ̄ ̄=IF(R2,IF(COUNTIF(R$2:R2,R2)>1,"",R2),"")
5.次式を入力したセル AD2 を右方に9列、下方に8行オートフィル
 ̄ ̄=IFERROR($AC2*10+S2,"")
6.ステップ1と同様の手法で、範囲 AD2:AM10 に名前 TmpTbl を付ける

【続く】
「Excel関数: テーブルの複数行列範囲」の回答画像2
    • good
    • 0

かなり面倒なので、数回に分けて記します。


添付図を出来るだけ鮮明にするために、文字数を少なくした同等のテーブルで説明します。
今回はベースとなる「3行2列のブロックからできているテーブル」を添付図に示しておくだけェ~。
1.範囲 A1:J18 を選択 ⇒ Alt+MMD ⇒ [名前]ボックスに table と入力 ⇒ [OK]

【続く】
「Excel関数: テーブルの複数行列範囲」の回答画像1
    • good
    • 0
この回答へのお礼

早々とご回答いただきまして有難うございます。

ALT+MMDて何?というレベルですので、これから数式の意味を理解しながら、検証していきます。

宜しくお願い致します。

お礼日時:2018/12/22 14:18

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

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

このQ&Aと関連する良く見られている質問

Qテーブルより特定の文字列(数値、日付、文字列)を複数検索し、行列番号の小さい順に一覧表を作成したい。

3行2列のブロックからできているテーブルより特定の文字列(数値、日付、文字列)を、左上から右下のブロックまで行番号の小さい順に、かつ列番号の小さい順に複数検索し、該当ブロックの検索値の一つ上のセルと一つ下の左右のデータを取出して一覧表を作成したいと思います。

因みに、A列B列だけだとしたら、
セル11の取り出しは、 {=IF(COUNTIF($A$1:$A$18,$M$1)<ROW($A1),"",INDEX($A$1:$A$18,SMALL(IF($A$1:$A$18=$M$1,ROW($A$1:$A$18)-1),ROW($A1))))}で
セル26の取り出しは、上を列方向にオートフィルして取り出せました。
同様に、データ11とデータ26も取り出せました。
また、コード11とコード26の取り出しは、難しかったですが
{=IF(COUNTIF($A$1:$A$18,$M$1)<ROW($A1),"",INDEX($B$1:$B$18,SMALL(IF($A$1:$A$18=$M$1,ROW($B$1:$B$18)+1),ROW($A1))))}としたら、取り出せました。

しかし、質問のように複数の列がある場合にはどうすればよいのか、または別の関数(例えばSUMPRODUCT関数など)を利用しなければできないのか、としたら、どういう計算式になるのか、まったく混迷しています。
関数だけで解決できる方法が有りましたら、是非とも教えてください。

3行2列のブロックからできているテーブルより特定の文字列(数値、日付、文字列)を、左上から右下のブロックまで行番号の小さい順に、かつ列番号の小さい順に複数検索し、該当ブロックの検索値の一つ上のセルと一つ下の左右のデータを取出して一覧表を作成したいと思います。

因みに、A列B列だけだとしたら、
セル11の取り出しは、 {=IF(COUNTIF($A$1:$A$18,$M$1)<ROW($A1),"",INDEX($A$1:$A$18,SMALL(IF($A$1:$A$18=$M$1,ROW($A$1:$A$18)-1),ROW($A1))))}で
セル26の取り出しは、上を列方向にオートフィ...続きを読む

Aベストアンサー

No8です。

しばらくの間はエクセル環境が無いので検証はできないのですが・・・

>シートごとに配列数式をその都度入れ替えるのでは効率も悪く大変で~
No8の式は、データの範囲($A$1:$H$99)に関しては一般化したつもりでいますので、範囲の限定はないと思います。
(とりあえず、1万列未満と想定してはありますが)
範囲の記述が式中に何ヵ所もあるので、まとめて正しく修正しなければなりませんが、お手数ではありますが試してみてください。
また、範囲がいろいろある場合は、データの範囲を名前の定義を利用して設定するようにしておけば、比較的間違えを起こしにくく、修正する際にも手間を減らす事ができるのではないかと思います。

あるいは、サイズの異なるデータ範囲であっても、残りのセルに紛らわしい値が無いことがわかっていれば、一番大きなサイズの式をそのまま使うことも可能と思います。
ただし、配列数式なのであまり広い範囲を設定すると計算に余計な時間がかかるようになるかもしれません。

また、いろいろなバリエーションが必要な場合には、No6にも書きましたようにVBAを用いた方が無駄な計算をしなくてすみますし、汎用化しておくことで、様々な機能に対応させることも可能になると思います。
No6にも書きましたが、ご提示のデータ構成自体が、もともと表計算(=関数式)に向いているとは言い難いものになっていますので。

No8です。

しばらくの間はエクセル環境が無いので検証はできないのですが・・・

>シートごとに配列数式をその都度入れ替えるのでは効率も悪く大変で~
No8の式は、データの範囲($A$1:$H$99)に関しては一般化したつもりでいますので、範囲の限定はないと思います。
(とりあえず、1万列未満と想定してはありますが)
範囲の記述が式中に何ヵ所もあるので、まとめて正しく修正しなければなりませんが、お手数ではありますが試してみてください。
また、範囲がいろいろある場合は、データの範囲を名前の定義を利...続きを読む

Q交差するセルの入力方法について

sheet1
A     B     C     D
日付   名前    事由
1    はさん   休み
4    いさん   早退

sheet2
A     B     C     D     E...    AF
日付    1      2     3      4...    31
いさん                    早退  
ろさん
はさん   休み

---------------------

シフト表を作成しており、提出された届出をsheet1に入力し、
sheet2に反映させるようにし、反映後にsheet1のD列に”済”と
入力できればと思っています。
また、次に入力した場合は”済”の次から反映できるように
できればと思っていますが、マクロの組み方が分かりません。

よろしくお願いいたします。

Aベストアンサー

No.2の回答者です。
>"失敗しました"と出てしまいます(><)

ふつうは、正しく設定している限りは、このエラーが出てくることはめったにないのですが、ただ、
最初に使おうとしたりするときにオブジェクトが収まっていないと、そのようなエラーが出るようです。こちらで新しくシートから作り直してみましたが、こちらも1回だけ不明なエラーが発生しました。
一応確認だけさせていただきます。
最初に、エラーの時の対処の仕方を書いておきます。
(1)
> Set sh1 = Worksheets("Sheet1")
> Set sh2 = Worksheets("Sheet2")  ←こちら側の名称は正しいですか?

(2)

25行目付近にある
j = .Cells(i, 1).Value
これは、確認のためで不要ですから、削除してください。

(3)
34行目付近にある、このコードですが、
' If Err() <> 0 Then
' MsgBox "失敗しました", vbExclamation
' Exit Sub
' End If

(文字の先頭に、シングルコーテーション「'」で、マクロを使わないようにする)
これは、予定していないエラーのためでしたが、なくても作動するはずでず。

次に、デバッグ・ツールの使い方を念のために書かせていただきます。
(解決すれば、使わなくても結構です)

以下の左端の枠をワンクリックして「●」をつけます。(通常茶色の丸)
●  If .Cells(i, dt + 1).Value = "" Then '日付が2列目を1日とした場合 dt +1【修正】
そして同じようにマクロを実行させます。
その部分に来るとマクロが止まります。、次に、F8 を押すと、ステップモードに切り替わりますので、1行ずつエラーがないのか探します。

それは、ローカルウィンドウを、画面下に出して、変数が正しく返っているか、0になったりしていないか、エラーが出たところを見つけるわけです。

●は、メニューのデバッグで、「すべてのブレークポイント削除」を選択していただけると早いです。

なお、マクロとワークブックはアドインというスタイルで、分離させることも可能です。

No.2の回答者です。
>"失敗しました"と出てしまいます(><)

ふつうは、正しく設定している限りは、このエラーが出てくることはめったにないのですが、ただ、
最初に使おうとしたりするときにオブジェクトが収まっていないと、そのようなエラーが出るようです。こちらで新しくシートから作り直してみましたが、こちらも1回だけ不明なエラーが発生しました。
一応確認だけさせていただきます。
最初に、エラーの時の対処の仕方を書いておきます。
(1)
> Set sh1 = Worksheets("Sheet1")
> Set sh2 = Worksheet...続きを読む

Qエクセルで関数を用いて表を作成したいです。

スポーツ評価をした結果を自動で表示されるものを作成したいと思っています。
評価内容は、モビリティ:①ASLR ②ショルダーモビリティ
モーターコントロール:③ロータリースタビリティ ④トランクスタビリティ
ファンクショナルパターン⑤インラインランジ ⑥ハードルステップ ⑦ディープスクワット
各①〜⑦の結果は、最適・合格・不合格

結果をもとに優先順位1位 2位 3位 4位を決めたいです。優先順位の仕方としては、一つ目は不合格である事がまず一つ。二つ目は、ファンクショナルパターンよりも、モーターコントロールよりも、モビリティを優先させる。3つ目は、①から⑦を上から順番に選択。

例え①不合格、②合格、③合格、④不合格、⑤合格、⑥合格、⑦合格
優先順位1位① 2位④ 3位② 4位③

関数を用いて可能だと思うのですが、わからないのでお願い致します。

Aベストアンサー

No.1です。

>順位まで出すことが出来たのですが、一位~4位に表示された①~④を文字で表す事は可能ですか?
>例えばb3が①→ダンベルという表示で、順位で一位の表示される時にダンベルと出したいのですが…

No.1の例でしめすと、
H3セルを『=B3』に修正して、下方向にコピペです。
B列を表示したい文字列に修正したら完成です。

Q【0.25での計算】Excelを使用した給料計算の方法について

お世話様です。

説明が難しいので文章がおかしいかもしれません。

時給が違うので、昼の時間と、夜間時間と分けて
0.25で計算出来るように式を組んでいます。
22時以降は夜間時間として計算しています。

例えば20:00~26:00まで働いたとします。
この場合、昼:2時間勤務・夜4時間勤務の合計6時間になります。

しかし何故か、出勤時間にに20:00~と入力すると
昼の勤務時間が1.75になってしまいます。

20:00以外の他の時間は何時に入力しても正しく表示されます。

18:00~24:00 → 4時間
18:00~20:00 → 2時間
19:55~24:00 → 2時間
20:00~24:00 → 1.75時間
となってしまします。

式は
=FLOOR(A1*24,0.25)
を使っています。
A1には働いた合計時間が入っています。(退勤-出勤-休憩の式を入れてます)

A1に、出勤が20:00の時に表示されるお昼の時間2時間のみが、1.75になります。
そのほかの時間の2時間は、2で表示されます。

よくわからなかったらすみません。
改善方法ございましたらご教授ください。

時刻を入力をするのは私ではないので、入力方法は変えずに
できれば式を修正する方法で改善したいです。

よろしくお願いいたします。

お世話様です。

説明が難しいので文章がおかしいかもしれません。

時給が違うので、昼の時間と、夜間時間と分けて
0.25で計算出来るように式を組んでいます。
22時以降は夜間時間として計算しています。

例えば20:00~26:00まで働いたとします。
この場合、昼:2時間勤務・夜4時間勤務の合計6時間になります。

しかし何故か、出勤時間にに20:00~と入力すると
昼の勤務時間が1.75になってしまいます。

20:00以外の他の時間は何時に入力しても正しく表示されます。

18:00~24:00 → 4...続きを読む

Aベストアンサー

時間のシリアル値は1日が1になる数値です。たとえば20時は6分の5ですから0.83333333333…と割り切れません。このように割り切れない数値同士を引き算したり足し算してると、最後の方の桁がちょっと多かったりちょっと少なかったりして、2時間だと思ってるのに実際は1時間59分59.99999998秒だったりするわけです。その状態で24倍すると2.0にならなくて1.999999722とかになってしまい、floor関数で正しく1.75に切り捨てられます。逆に1時間0分0.0000000001秒をceiling関数で切り上げても悲惨ですね。

floor関数やceiling関数を使う前に、妥当な単位でまるめましょう。floor(round(時間*24,3),0.25) とか、floor(mround(時間,"0:01")*24), 0.25) みたいな感じです。

ただし、毎日労働時間を切り捨てる処理をしているのは違法です。

Qエクセルの連番、すでに記載してある項目名の前に挿入する方法ありますか。

エクセルで、アンケート結果のデーターの項目名に連番を入れる必要が出てきました。
項目が500個程度あるため、手入力ではない方法を知りたいです。
例えば、4つの項目名が「楽しい」、「嬉しい」、「喜び」、「感謝」と入力されているものを
「Q1_1楽しい」、「Q1_2嬉しい」、「Q1_3喜び」、「Q1_4感謝」としたいです。
方法をご存知の方いらっしゃいましたらお願いします。

Aベストアンサー

既存の列を、
仮に、
現在 A列、

説明する行を、
仮に、5行とします。


2行、
A列の 左に、
列を 追加し、

追加した、
一方の 列(B列)に、
連番を 入力、

他方の、列(C列5行に、
=B5&C5
と入力、

B、C列を フィル。


此で 如何でしょうか?

QExcelのゴールクーク機能の使い方について教えてください。 物理シミュレーションで斜方投射の打ち上

Excelのゴールクーク機能の使い方について教えてください。

物理シミュレーションで斜方投射の打ち上げた物体の着地時間(y=0)をゴールクーク機能で計算したいのですがどのようにやればいいですか?

Aベストアンサー

数式入力セル :着地時間の計算式を入力したセルを指定
目標値    :着地時間の目標値を入力(例:2[秒]) 単位の入力は不要
変化させるセル:数式で参照しているセルで変化させたいセルを指定
とすればよいです。

ちなみに
ゴールシークでは、変化させるセルは1つです。
それに対して、この質問では変化させるべきパラメータは、ボールを投げる場合などのように加速しない場合でも、初速度と打上げ角度の2つあります。ですので、どちらかを固定、もう一方を変化させるパラメータとします。

Qアンケートデータを因子分析後、男女別の分析をする時のデータをどう拾えば良いか方法を教えてください。

アンケートデータを因子分析後、男女合わせた共分散構造分析を行いました。
その後、男女別で同じ共分散構造分析で男女の違いを比較したいのですが、
どのように男女のデータを拾い分けるかがわかりません。
ソフトはexcelでデーターテーブルを作り、とAmosで因子分析と共分散構造分析を行いました。

初めて行う統計分析のため、手探りでやっており、
知識のない初心者向けに教えていただけたらありがたいです。

どうぞよろしくお願いします。

Aベストアンサー

こんばんは。
エクセルは単にデータテーブルを作るだけ、エイモスで統計分析を実施したという解釈で良いですか?。
データテーブルの項目に男性、女性の項目がありますか(添付画像参照)

男女性別項目ありなら、エクセルのフィルタ機能で男女が分けられるので、
男女別のデータテーブルを別に作れば、簡単に統計分析に入れるでしょう。

既に作成済のデータテーブルに男女性別項目がなければ、No.1の方の言う通り、元のアンケートを男女別にやるだけでしょうね。

Q開く、上書き保存 に掛かる時間が長いので短縮したい

開く、上書き保存 に掛かる時間が長い

いつもお世話になります。

OSはWin10 エクセルは2016 です。

ブックを「開く」 又は 「上書き保存」 の時間がかかります。

 因みに、
  開く    は約1分
  上書き保存 は1分45秒
 です。

少し時間を短縮できないでしょうか。
もし可能ならご指導願えませんでしょうか。


私が憶測するに
1 ガンチャートに名前を入れている
2 構文でCells(GYOU, 1).Cells(GYOU, 2).と言う具合に繰り返し
が関係していると思いますが。

※参考

 1 VBAの構文は
   Private Sub UserForm_Initialize()
   TextBox1.Text = Format(Date, "mm/dd")
   End Sub

   Sub 記入_Click()
    Dim GYOU '追加
    GYOU = Range("C65536").End(xlUp).Row + 1
    Cells(GYOU, 1).Value = Range("N1").Value
    Cells(GYOU, 2).Value = Range("N2").Value
    Cells(GYOU, 3).Value = Range("N3").Value
    Cells(GYOU, 5).Value = Range("N4").Value
    Cells(GYOU, 6).Value = Range("N5").Value
    Cells(GYOU, 7).Value = Range("N6").Value
    Cells(GYOU, 8).Value = Range("N7").Value
    Cells(GYOU, 9).Value = Range("N8").Value

   End Sub
 2 B7の関数は
   =IF(COUNTIFS(入力!$D:$D,$A7,入力!$G:$G,"<="&B$5,入力!$H:$H,">="&B$5,入力!$G:$G,">0",
   入力!$H:$H,"<9999/12/31")=1,INDEX(入力!$E:$E,SUMPRODUCT(ROW(入力!$E$1:INDEX(入力!$E:$E,
MATCH(9E+99,入力!$A:$A)))*(入力!$D$1:INDEX(入力!$D:$D,MATCH(9E+99,入力!$A:$A))=$A7)*(入力!$G$1:INDEX(入力!$G:$G,MATCH(9E+99,
入力!$A:$A))<=B$5)*(入力!$H$1:INDEX(入力!$H:$H,MATCH(9E+99,入力!$A:$A))>=B$5))),IF(COUNTIFS(入力!$D:$D,$A7,入力!$G:$G,"<="&B$5,
入力!$H:$H,">="&B$5,入力!$G:$G,">0",入力!$H:$H,"<9999/12/31")>1,"重複",""))

開く、上書き保存 に掛かる時間が長い

いつもお世話になります。

OSはWin10 エクセルは2016 です。

ブックを「開く」 又は 「上書き保存」 の時間がかかります。

 因みに、
  開く    は約1分
  上書き保存 は1分45秒
 です。

少し時間を短縮できないでしょうか。
もし可能ならご指導願えませんでしょうか。


私が憶測するに
1 ガンチャートに名前を入れている
2 構文でCells(GYOU, 1).Cells(GYOU, 2).と言う具合に繰り返し
が関係していると思いますが。

※参考
...続きを読む

Aベストアンサー

こんばんは!

>2 構文でCells(GYOU, 1).Cells(GYOU, 2).と言う具合に繰り返し
>が関係していると思いますが。

おそらくユーザーフォームのコマンドボタンのコードだと思いますので、
ブックを開く、保存する。といった場合には直接関係ないと思います。
(コマンドボタンをクリックするとマクロが実行されるはず)

一つ気になるのが、数式内に
SUMPRODUCT関数を使っていますね。
SUMPRODUCT関数は配列数式になりますので、極端に広い範囲を指定してしまうと
計算速度が落ちてしまいます。

おそらくSheetの最終行までデータがある!というコトはないと思いますので、
SUMPRODUCT関数の範囲をある程度限定してみてはどうでしょうか。

SUMPRODUCT関数内のINDEX関数の範囲が列全体になっていますので、
>SUMPRODUCT(ROW(入力!$E$1:INDEX(入力!$E:$E,
の部分を
>SUMPRODUCT(ROW(入力!$E$1:INDEX(入力!$E1:$E3000,

といった感じで、もちろん他の範囲も同じ行数に合わせます。

※ 検証していませんので、
別の原因ならごめんなさい。m(_ _)m

こんばんは!

>2 構文でCells(GYOU, 1).Cells(GYOU, 2).と言う具合に繰り返し
>が関係していると思いますが。

おそらくユーザーフォームのコマンドボタンのコードだと思いますので、
ブックを開く、保存する。といった場合には直接関係ないと思います。
(コマンドボタンをクリックするとマクロが実行されるはず)

一つ気になるのが、数式内に
SUMPRODUCT関数を使っていますね。
SUMPRODUCT関数は配列数式になりますので、極端に広い範囲を指定してしまうと
計算速度が落ちてしまいます。

おそらくSheetの...続きを読む

Qエクセル関数

式の中の参照部分を、D1のセルの内容によって変えたいです。
下記が実際の式なのですが
=IFERROR(IF(VLOOKUP(I6,[工場在庫.xlsm]A!$D$3:$D$1000,1,FALSE)=I6,"OK","新規追加!!"),"新規追加!!")

この式の [工場在庫.xlsm]A! の部分をD1のセルから持ってくるにはどうしたらいいかがわかりません。
D1のセルが[工場在庫.xlsm]B!だったら
=IFERROR(IF(VLOOKUP(I6,[工場在庫.xlsm]B!$D$3:$D$1000,1,FALSE)=I6,"OK","新規追加!!"),"新規追加!!")
としたいです。
ご教授お願いいたします。

Aベストアンサー

こんにちは

簡単にやるなら、INDIRECT関数を利用して参照範囲を可変にすればよさそう。

[工場在庫.xlsm]A!$D$3:$D$1000
  ↓ ↓
INDIRECT(D1 & "$D$3:$D$1000")

ただし、INDIRECT関数等は揮発性関数と言われる種類ですので、他の方の質問でこのような(↓)ものもありますのでご注意。
https://oshiete.goo.ne.jp/qa/10893054.html

QExcelで日付を変更したら中身(6行めから13行目)も移動させるのは可能でしょうか?

画像にありますように作業の管理をしています。実際はひとつのシートに
作業が1~10くらいまで入っています。
そして日付は常に6ヶ月ほどはいっています。

これまではすべて手作業で作っていました。
先日、日付の入力を楽にしたい、という質問をさせていただいてこちらでアドバイスをもらい
E5セルには
=IF(DATE($C1,$E1,COLUMN(A1))<=EOMONTH(DATE($C2,$E2,1),0),DATE($C1,$E1,COLUMN(A1)),"")
とはいっています

今回、1月スタートの表示をするのですが開始月に2019年1月と入力すると4行目・5行目の月日は変更されますが、当然中身(6行めから13行目)は11月のままです。
列削除するとD列に計算式(簡単な人数管理をしています)が入っているので計算が狂ってしまいます。

そこで質問タイトルにありますような方法はVBAを使わないとできませんか?
私はVBAの知識がほとんどありません。

もっとシンプルに列非表示して日付は手入力でも良いのではないか?と思えてきました。
こちらの表は毎月1度しか印刷しません。

何かお知恵をお貸しいただけるとうれしいです。
よろしくお願いします。

画像にありますように作業の管理をしています。実際はひとつのシートに
作業が1~10くらいまで入っています。
そして日付は常に6ヶ月ほどはいっています。

これまではすべて手作業で作っていました。
先日、日付の入力を楽にしたい、という質問をさせていただいてこちらでアドバイスをもらい
E5セルには
=IF(DATE($C1,$E1,COLUMN(A1))<=EOMONTH(DATE($C2,$E2,1),0),DATE($C1,$E1,COLUMN(A1)),"")
とはいっています

今回、1月スタートの表示をするのですが開始月に2019年1月と入力すると4行目・5行...続きを読む

Aベストアンサー

ガントチャートですね、

其のまま、其の物では、
無いですが、

表示日付範囲を、
自由に 変えれるものを、
持っております。


少し、
手を 入れられれば、
想いのままに 出来るのでは?

ファイル、
https://1drv.ms/x/s!AjviygfJDgV_2xQEeZL1QSe8XBTV

尚、
ファイルですが、
一度、
Excelで 開き、
ローカルに 別名保存してください。

別名での ローカルへの、
保存で ないと、
意味が ないですよ。


そうすれば、
閲覧も 編集も、
可能と なるものと、
思います。


人気Q&Aランキング