『日付と日付』(八) いつもお世話になっております。 A列に 7月21日 日付 7月22日 日付 7月23日 日付 とあります。 あのシートに 7月21日 7月22日 7月23日 と表記させるには、どうすればいいでしょうか? 宜しくお願い致します。 < 使用 Excel:Excel2013、使用 OS:Windows7 > ---- オートフィルタで抽出するのではダメなんですか? (BJ) 2017/08/23(水) 14:21 ---- (BJ)様コメント頂きありがとうございます。 オートフィルではなくて、関数ではできないでしょうか? (八) 2017/08/23(水) 14:22 ---- =INDEX(A:A,ROW(A1)*2-1) とか? (seiya) 2017/08/23(水) 14:24 ---- (seiya)様コメント頂きありがとうございます。 A列に     7月21日   日付 7月22日 日付 7月23日 日付 B列に 売上 10 売上 0 売上 0 とあった場合、B列に数値が入った場合、 あのシートに 7月21日 7月22日 7月23日 と表記させることはできますでしょうか? 追加になってしまい申し訳ありません。 (八) 2017/08/23(水) 14:37 ---- 行がずれているようですが、本当にそのレイアウトですか? タイトルと値が互い違いで、見にくいと思いますが。 更に言うと、値が0でも選択するならば、seiyaさんの式で既にお望みの結果なのでは? (???) 2017/08/23(水) 14:42 ---- きちんとした表をアップした方がいいと思いますよ? (seiya) 2017/08/23(水) 15:11 ---- ↓ はどうなったんですか? [[20170807093226]] 『行ごとに日付、文字』(八) 同じ質問としか思えないんですけど。 (笑) 2017/08/23(水) 15:23 ---- どっかで見たように思ったら、同じ方でしたか! 自分がボケたのかと思いましたよ。 (???) 2017/08/23(水) 15:38 ---- (???)様(seiya)様(笑)様コメントを頂きありがとうございます。 先日問い合わせた内容と同じです。。 大変申し訳ありません。 A列に     7月21日   日付   ← 日付と表記はすべてこのシートでは非表示となっております。 7月22日 日付 7月23日 日付 B列に 売上   ←売上という表記は全て非表示のシートです。 10 売上 0 売上 0 「あ」のシートのB列に金額が入った際、A列の日付を表記させたかったです。 宜しくお願い致します。 (八) 2017/08/23(水) 20:11 ---- (???) さんや(seiya)さんのおっしゃられている >行がずれているようですが、本当にそのレイアウトですか? >きちんとした表をアップした方がいいと思いますよ? に対して、ハイともイイエとも言わず黙殺されていますが、 (八)さんの ・手元にどんなデータがあるか ・どうなって欲しいか を伝えないと、誰も何も手助けできませんよ? 以下のものをコピーして、正しく書き換えて投稿してみてはいかがでしょうか。 シート名「あ」 |[A] |[B] |[C] [1]|7月21日|売上 | [2]|日付 |10 | [3]|7月22日|売上 | [4]|日付 | 0| [5]|7月23日|売上 | [6]|日付 | 0| '---以下エスパー的予想--- 「非表示」って言ってるのが実は列の非表示とかとは全く関係なく、 白色フォントで見えなくなってるとか。条件付き書式で解決? 日付の入ってるシートと売上シートと「あ」シートはそれぞれ別とか? (tata) 2017/08/23(水) 21:00 ---- (tata)様コメントを頂きありがとうございます。 申し訳ありません。 すべては私の思い込みの回答ということがわかりました。 行はずれてないと思います。再度確認します。 きちんとした表をアップしているつもり、つまり思い込みでした。。 恐らく自分で何をどうしたいかが明確にできてなかったです。 今回(tata)様から頂いた表を元に 明日改めまして、きちんとした表を作って参ります。 宜しくお願い致します。 (八) 2017/08/23(水) 21:21 ---- いつもお世話になっております。 昨日お話させて頂きました図面を表します。 シート名「あ」 |[A] |[B] |[C] [1]|7月21日|10 | [2]|日付 |売上 | ←日付と売上の名称は非表示です。関数入っている。 [3]|7月22日|   0| [4]|日付 |売上 | ←日付と売上の名称は非表示です。 [5]|7月23日|   0| [6]|日付 |売上 | ←日付と売上の名称は非表示です。 [7]|7月24日|10 | シート名「い」に「あ」シートにB列の金額がある場合 「あ」シートの日付と金額を抜き出したいです。 |[A] |[B] |[C] [1]|7月21日|10| [2]|7月24日|10| 恐れ入りますが宜しくお願い致します。 (八) 2017/08/24(木) 09:44 ---- > [2]|日付 |売上 | ←日付と売上の名称は非表示です。関数入っている。 関数ということは、「日付」「売上」という固定文字列が全ての偶数行に入っている、という訳では無いのですか? もし行毎に違う文字列が入っているならば、それを表現したサンプルにしてください。 あと、どんどん条件が複雑になってきていて、数式で実現するよりも、マクロで実現するほうが何倍も簡単になっているのですが、面倒な数式に拘りますか? 更には、どうしても数式、という場合、例えば「あ」シートのC列を作業列にする、とかはアリですか? (???) 2017/08/24(木) 10:31 ---- んー、よく見ると、月日が入っているのは4行で、「日付」の入っているのは3行。数が合いませんが、本当にシート「あ」は、このレイアウトですか? (???) 2017/08/24(木) 10:38 ---- とりあえず、レイアウトが1行ずれていても処理できるマクロなぞ。 Sub test() Dim wk1 As Worksheet Dim wk2 As Worksheet Dim i As Long Dim iR As Long Set wk1 = Sheets("あ") Set wk2 = Sheets("い") wk2.Cells.ClearContents With wk1 For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row If IsDate(.Cells(i, "A").Value) = True And 0 < .Cells(i, "B").Value Then iR = iR + 1 wk2.Cells(iR, "A").Value = .Cells(i, "A").Value wk2.Cells(iR, "B").Value = .Cells(i, "B").Value End If Next i End With End Sub (???) 2017/08/24(木) 10:45 ---- 関数もマクロも使用しない方法 1) 一行目に行を挿入して列A,Bにそれぞれ日付、売上と列見出しを記入して保存 2) 抽出先シートを選択して、[データ] - [その他のデータソース] - [Macrosoft Query] - [Excel Files*] 3) 現在編集中のファイルを選択して[OK] 4) 該当シートの+をクリックして"日付","売上"を選択して中央先頭の > を選択後 [次へ] - [次へ] - [次へ] 5) [Microsoft Query でデータの表示またはクエリの編集を行う(V)] を選択して [完了] 6) 出てきた画面上部の [SQL]をクリックすると SELECT `シート名$`.日付, `シート名$`.売上 FROM .........xls.`シート名$` `シート名$` になっているはずなので その下に where 売上 > 0 を追加して [OK] 7) [ファイル] 最下行の [マイクロソフト エクセルにデータを返す] (seiya) 2017/08/24(木) 11:24 12:47 修正:where 売上 is not null を where 売上 > 0 15:13 修正:売上抽出の見逃しを修正 ---- 数式にこだわらないならば Excel2003以前での「フィルターオプションの設定」に相当する、 Excel2007以降では「並べ替えとフィルターの詳細設定」を用いたやり方 1・「あ」シートの1行目に「見出日付」「見出売上」のような何らかの見出しを作成する。一意に定まる重複しないもの。 「あ」シート |[A] |[B] [1]|見出日付|見出売上 [2]|7月21日 | 10 [3]|日付 |売上  [4]|7月22日 | 0 [5]|日付 |売上 [6]|7月23日 | 0 [7]|日付 |売上  [8]|7月24日 | 10 2・どこか邪魔にならない場所に、抜き出す条件を書く 「見出売上」が「>0」である 「い」シート |[A]|[B]|[C]|[D]|[E] [1]| | | | |見出売上 [2]| | | | |>0 3・「い」シートを選んだ状態で データ→並べ替えとフィルター の → 詳細設定 をクリック リスト範囲に「あ」のセル範囲        あ!$A$1:$B$8 検索条件範囲に               E1:E2 指定した範囲にチェックを入れて、抽出範囲に A1 「い」シート |[A] |[B] |[C]|[D]|[E] [1]|見出日付|見出売上| | |見出売上 [2]|7月21日 | 10 | | |>0 [3]|7月24日 | 10 | | | (tata) 2017/08/24(木) 12:29 ---- (???)様コメントを頂きありがとうございます。 マクロの方が早いのですね。 マクロの勉強はまだかじり中で全然勉強不足です。。 (???)様から頂いたマクロの表記をコピーさせて頂き実際に エクセル画面の表示⇒マクロ⇒マクロ表示⇒編集⇒(???)様のマクロを貼り付け実行を押しましたところ 実行時エラー‘9`: インデックスが有効範囲にありません。と表記されました。 >「日付」「売上」という固定文字列が全ての偶数行に入っている 固定文字が奇数行に入っています。 >「あ」シートのC列を作業列にする、とかはアリですか? できれば他のシートに作業列を作りたいです。 他に、私へ突っ込みどころがあれば、突っ込んでくさい。 表現サンプルを表記します。   | [A]  |〔B〕 |[C] [1] |日付   |売上     1行目空白、もしくはこのまま下へ移動で2行目から開始。 [2] |7月21日 |10 [3] |日付  |売上 [4] |7月22日 |0 [5] |日付  |売上 [6] |7月23日 |0 [7] |日付  |売上 [8] |7月24日 |10 [9] |日付   |売上 [10]|7月25日 |10 [11]|日付  |売上 [12]|7月26日 |10 [13]|日付   |売上 [14]|7月27日 |10 [15]|日付   |売上 [16]|7月28日 |10 [17]|日付  |売上 [18]|7月29日 |0 [19]|日付  |売上 [20]|7月30日 |0 [21]|日付  |売上 「い」のシート の実現したい表記   |[A]  |[B] |[C] [1]|7月21日 |10 | [2]|7月24日 |10 | [3]|7月25日 |10 | [4]|7月26日 |10 | [5]|7月27日 |10 | [6]|7月28日 |10 | (seiya)様(tata)様コメントを頂きありがとうございます。 引き続き、(seiya)様(tata)様の内容を実行します。 宜しくお願い致します。 (八) 2017/08/24(木) 14:05 ---- インデックスエラーになりそうなのは、シート名が「あ」「い」との事でしたが、実際は違う、という場合です。正しいシート名に変えてください。(シート名は、貴方が「あ」とか「い」と書いたのですよ?) というか、「日付」の文字は奇数行だ、との事だと、またフォーマットが違っていたという事だし、抽象化せず、全て実際の情報で書いてください。何度も書き間違いに踊らされるのは、お互い時間の無駄でしかないです。 (???) 2017/08/24(木) 14:28 ---- (???) 様コメントを頂きありがとうございます。 内部情報を漏らすと・・・ということを恐れて抽象化をする結果=やり直し作業が発生しています。 本当は、そのまま貼り付けいのですが、どこまで情報を発信して良いかという判断に悩むところですが シート名は 「○○○」   | [A]  |〔B〕 |[C] [1] |日付   |売上     1行目空白、もしくはこのまま下へ移動で2行目から開始。 [2] |7月21日 |10 [3] |日付   |売上 [4] |7月22日 |0 [5] |日付   |売上 [6] |7月23日 |0 [7] |日付   |売上 [8] |7月24日 |10 [9] |日付   |売上 [10]|7月25日 |10 [11]|日付   |売上 [12]|7月26日 |10 [13]|日付   |売上 [14]|7月27日 |10 [15]|日付   |売上 [16]|7月28日 |10 [17]|日付   |売上 [18]|7月29日 |0 [19]|日付   |売上 [20]|7月30日 |0 [21]|日付   |売上 「○○○2」のシート の実現したい表記   |[A]   |[B]   |[C] [1]|日付  |運 賃 [2]|7月21日  |10 | [3]|7月24日 |10   | [4]|7月25日 |10     | [5]|7月26日 |10    | [6]|7月27日 |10    |        [7]|7月28日 |10    | (八) 2017/08/24(木) 15:05 ---- シート名が違うならば、以下の「あ」「い」の部分を、「○○○」「○○○2」に変えてください。 Set wk1 = Sheets("あ") Set wk2 = Sheets("い") (???) 2017/08/24(木) 15:18 ---- (???)様コメントを頂きありがとうございます。 実行時エラー‘9`: インデックスが有効範囲にありません。と表記されました。 申し訳ありません。 (八) 2017/08/24(木) 15:42 ---- (???)様 ○○○2のシートに、B列1〜31に○○○が表示されました。 これ以上は、もう自分でどうにかするっきゃないです。 (八) 2017/08/24(木) 15:49 ---- vbaなら別案 Sub test() Dim x With Sheets("○○○").Cells(1).CurrentRegion.Resize(, 2) x = .Columns(2).Address x = Filter(.Parent.Evaluate("transpose(if(isnumber(" & x & "),if(" & _ x & ">0,row(1:" & .Rows.Count & "))))"), False, 0) If UBound(x) > -1 Then x = Application.Index(.Value, Application.Transpose(x), [{1,2}]) Else x = Empty End If End With If IsArray(x) Then With Sheets("○○○2").[a1].Resize(, 2) .EntireColumn.ClearContents .Value = [{"日付","運賃"}] .Rows(2).Resize(UBound(x)).Value = x End With End If End Sub (seiya) 2017/08/24(木) 15:50 ---- 「○○○2」「○○○2」どちらですか? 全角と半角は、別物ですからね? 最初は全角の2でしたが、後の書き込みでは半角になっていますよ。 (???) 2017/08/24(木) 17:23 ---- (seiya)様(???)様コメントを頂きありがとうございます。 明日早速やってみます。 それと、「○○○2」「○○○2」の文字の全角、半角と違っており申し訳ありません。 半角でお願い致します。 修正は、自身でやります。 宜しくお願い致します。 (八) 2017/08/24(木) 21:30 ---- [削除] (tata) 2017/08/25(金) 02:07 別案投稿したが、質問者の理解力と日本語質疑応答力を鑑み ???さん八さんの会話に私が割り込むことによって生じる混乱を回避するため 2017/08/25 02:17 削除 一連の流れが落ちついてから再投稿の予定 ---- (tata) 様申し訳ありません。 (tata)様のコメントはとてもすばらしい教授で私は早く追いつきたいと 思っております。 ただ私の理解力と日本語質疑応答力は、欠けていることは事実です。 どうか追いつくので、またここに貼り付けて頂くことをどうか宜しくお願い致します。 (八) 2017/08/25(金) 09:06 ---- (seiya)様 何度か頂いたVBAで、マクロを行なったのですが 何度やってもうんともすんとも動かないです・・・ 申し訳ありません。 もっともっとマクロの勉強をせねばなりません。 (八) 2017/08/25(金) 14:27 ---- QueryとVBA両方書いてあるファイルをアップ。 http://firestorage.jp/download/a3883366f59d21dd99747e1caed8cad2f2f58840 Password : rhi64ndz (seiya) 2017/08/25(金) 15:11 ---- (seiya)様コメントを頂きありがとうございます。 すばらしい物を作成頂き心から感謝致します。 私が今作成中の資料のマクロに(seiya)様から頂いたVBAを貼り付けたところ 「ドキュメント検査機能では削除できない個人情報がドキュメントに含まれていることがありますのでご注意ください」と表記されましたが大丈夫でしょうか? 作成中の資料には、表記されな原因がここにあるのでしょうか・・・ マクロを実行する上でエクセルファイルとVBA用のファイルを二つ開いて実行することと聞いたことがあるので二つ開いてます。 (八) 2017/08/25(金) 15:27 ---- ブックを2つ開いている? 1つのブックに、2つのシートがあるのではないのですか? ここまで回答した人全員、ブックは1つだと思っていますよ。ブックが違うなら、全て動かないというのが納得ですが。1つのブックに2つのシートにできませんか? 別ブックには、抽出できた後に手作業でコピペすれば良いですよね? (???) 2017/08/25(金) 15:38 ---- ただ単にエクセル内の私の個人情報を非表示ににしてある、というメッセージ。 新規、又は既存のファイルにコードを移し替えれば良いでしょう。 (seiya) 2017/08/25(金) 15:41 ---- (???)様コメントを頂きありがとうございます。 (seiya)様から頂いたシートを私の作成ブックシートに貼り付けてしまうと同じシート名 なので、一つのブックシートに二つのシートを貼り付けはできないですよね? なので、二つのブックを開いて、(seiya)様のVBAを抽出して自分の資料に4つのマクロの編集に貼り付けましたが、動きません・・・ (seiya)様のブックは、マクロが実行できるのにどうして私のブックはマクロがきいてくれないのですかね・・・ (seiya)様コメントを頂きありがとうございます。 エクセル内の私の個人情報を非表示にすることができるのですね。なるほどです。 >新規、又は既存のファイルにコードを移し替えれば良いでしょう。 合計4つのVBAをコピーして私のブックマクロに貼り付けましたが、きいてくれないです・・・ (八) 2017/08/25(金) 16:31 ---- 1)ダウンロードしたファイルからコードをコピーしてメモ帳にでも貼り付けておく。 2)マクロを実行したいファイルを立ち上げて、コードを貼り付けて保存する。 これでダメ? これが出来なければお手上げ。 (seiya) 2017/08/25(金) 16:40 ---- (seiya)様コメントを頂きありがとうございます。 ダウンロードしたファイルからコピーしてメモ帳に貼り付けておき、 マクロを実行したいファイルを立ち上げて、コードを貼り付けて保存して、実行しましたが ダメでした (八) 2017/08/25(金) 16:58 ---- どこかにファイルをアップしてもらうしか手がないね。 (seiya) 2017/08/25(金) 17:00 ---- (seiya)様コメントを頂きありがとうございます。 どこかにファイルをアップする方法調べてみます。 それと、 「Microsoft Visual Basic for Applications コンパイルエラー: 名前が適切ではありません:test」 全てのファイルを閉じた後に、表記されましたが 大丈夫でしょうか? (八) 2017/08/25(金) 17:03 ---- (seiya)様のエクセルバージョン何でしょうか? こちらは、2013なのでエクセル互換性エラーがでたのでしょうか。 (八) 2017/08/25(金) 17:09 ---- もういくら説明しても無駄なので、ファイルアップしたらリンクを貼り付けて。 (seiya) 2017/08/25(金) 17:12 ---- 必要なのは、「○○○」「○○○2」の2つのシートと、私のか、seiyaさんのマクロがシートモジュールか標準モジュールに貼ってある、1つのブックだけです。 Seiyaさんのブックは見ていませんが、それが1つにまとまった例、というだけ。その中のマクロを動かしても、八さんのブックは別物なので、何も起こりませんよ。 (???) 2017/08/25(金) 18:04 ---- (seiya)様(???)様コメントを頂きありがとうございます。 申し訳ありませんがしばらくお時間を下さい。 (八) 2017/08/27(日) 05:17 ---- 再投稿 >>「あ」シートのC列を作業列にする、とかはアリですか? >できれば他のシートに作業列を作りたいです。 シート「○○○」は(八) 2017/08/24(木) 15:05記述のものを想定 A1セル 日付 | B1セル 売上 A2セル 7月21日 | B2セル 10 A3セル 日付 …と続いているものとする     シート「う」 |[A] |[B]|[C] [1] |=IF(ISNUMBER(○○○!B1)*(○○○!B1>0),ROW(○○○!B1),"") | | [2] | 2| |○○○!のB列が数字かつ>0の時、その行番号を表示 [3] | | | [4] | | | [5] | | | [6] | | | [7] | | | [8] | 8| | [9] | | | [10]| 10| | [11]|=IF(ISNUMBER(○○○!B11)*(○○○!B11>0),ROW(○○○!B11),"")| |       シート「○○○2」 |[A] |[B] [1]|日付 |運賃 [2]|=IF(COUNT(う!$A:$A) 八さんの修正アップでは、気にされたのであろう文字列も一部残っていましたが、これも全て「○○○」という文字列に変えてあります。 これも、投稿者に断りもなく変更するのは×だと思うけど? 修正はあくまでも投稿者本人のものだけにしてほしい。 (seiya) 2017/09/11(月) 10:00