[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付と日付』(八)
いつもお世話になっております。
A列に
7月21日
日付 7月22日 日付 7月23日 日付 とあります。 あのシートに 7月21日 7月22日 7月23日
と表記させるには、どうすればいいでしょうか?
宜しくお願い致します。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
(BJ) 2017/08/23(水) 14:21
(八) 2017/08/23(水) 14:22
=INDEX(A:A,ROW(A1)*2-1) とか? (seiya) 2017/08/23(水) 14:24
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
先日問い合わせた内容と同じです。。
大変申し訳ありません。
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)様から頂いた表を元に 明日改めまして、きちんとした表を作って参ります。 宜しくお願い致します。 (八) 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
(???) 2017/08/24(木) 10:38
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
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
(???) 2017/08/24(木) 17:23
明日早速やってみます。 それと、「○○○2」「○○○2」の文字の全角、半角と違っており申し訳ありません。 半角でお願い致します。 修正は、自身でやります。 宜しくお願い致します。 (八) 2017/08/24(木) 21:30
[削除]
(tata) 2017/08/25(金) 02:07
別案投稿したが、質問者の理解力と日本語質疑応答力を鑑み ???さん八さんの会話に私が割り込むことによって生じる混乱を回避するため 2017/08/25 02:17 削除
一連の流れが落ちついてから再投稿の予定
(tata)様のコメントはとてもすばらしい教授で私は早く追いつきたいと 思っております。 ただ私の理解力と日本語質疑応答力は、欠けていることは事実です。 どうか追いつくので、またここに貼り付けて頂くことをどうか宜しくお願い致します。 (八) 2017/08/25(金) 09:06
何度か頂いたVBAで、マクロを行なったのですが 何度やってもうんともすんとも動かないです・・・ 申し訳ありません。 もっともっとマクロの勉強をせねばなりません。 (八) 2017/08/25(金) 14:27
QueryとVBA両方書いてあるファイルをアップ。
http://firestorage.jp/download/a3883366f59d21dd99747e1caed8cad2f2f58840
Password : rhi64ndz
(seiya) 2017/08/25(金) 15:11
私が今作成中の資料のマクロに(seiya)様から頂いたVBAを貼り付けたところ 「ドキュメント検査機能では削除できない個人情報がドキュメントに含まれていることがありますのでご注意ください」と表記されましたが大丈夫でしょうか? 作成中の資料には、表記されな原因がここにあるのでしょうか・・・
マクロを実行する上でエクセルファイルとVBA用のファイルを二つ開いて実行することと聞いたことがあるので二つ開いてます。
(八) 2017/08/25(金) 15:27
(???) 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
ダメでした (八) 2017/08/25(金) 16:58
どこかにファイルをアップしてもらうしか手がないね。 (seiya) 2017/08/25(金) 17:00
どこかにファイルをアップする方法調べてみます。
それと、
「Microsoft Visual Basic for Applications
コンパイルエラー:
名前が適切ではありません:test」
全てのファイルを閉じた後に、表記されましたが
大丈夫でしょうか?
(八) 2017/08/25(金) 17:03
(八) 2017/08/25(金) 17:09
もういくら説明しても無駄なので、ファイルアップしたらリンクを貼り付けて。 (seiya) 2017/08/25(金) 17:12
Seiyaさんのブックは見ていませんが、それが1つにまとまった例、というだけ。その中のマクロを動かしても、八さんのブックは別物なので、何も起こりませんよ。
(???) 2017/08/25(金) 18:04
申し訳ありませんがしばらくお時間を下さい。 (八) 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)<ROW(A1),"",INDEX(○○○!$A:$B,SMALL(う!$A:$A,ROW(A1)),1))| 10 [3]|7月24日 | 10 [4]|7月25日 | 10 [5]| |=IF(COUNT(う!$A:$A)<ROW(B4),"",INDEX(○○○!$A:$B,SMALL(う!$A:$A,ROW(B4)),2)) しばらく返信出来ません。
本関数での実施は、 エキスパートな他の方が作られた例を参考に、 知識のない私が適当に作ったものなので、 あまり良い手法ではないかもしれません。想定されるデメリットへのケア等、私は考えてない式です。
???さんとseiyaさんの手法を用いたほうが良いかと思います。 (tata) 2017/08/30(水) 20:45
関数の式を懇切丁寧に書いて頂き本当に感謝致します。 皆さまから頂いたコメントは一時ファイルに保存します。 そして必ず皆さまから頂いた内容をやります。 ありがとうございました。八 (八) 2017/08/30(水) 22:32
消したのは投稿者でしょうか?
(tata) 2017/09/08(金) 21:45
貴方個人のためだけに書いたわけではなく、同じような悩みを抱えた人が、
後に検索等でたどり着いて、読んで、類似の困り事を解決する手助けになればいいなぁ、
と思いながら書いたモノでもあるのですから。
それに、他の方々の書かれたモノも、読んで勉強したいな、とも思っていました。
他の人が書いたものを、断りなく勝手に消す、などという行為は(口汚い表現のため23:25削除)
個人情報に類することを伏せたいのであれば、
断りを入れて、固有名詞を置き換える、等の行為にすべきだったのではないかと思います。
(tata) 2017/09/08(金) 23:25
(八) 2017/09/09(土) 00:38
また、今回のように勝手に他人の書き込み、および、自身の書き込みであっても、他人が既に読んで回答を付けたものを削除するのは、著作権法に違反する行為です。 ましてや、貴方のために書かれたコードも幾つかありましたし、消された中の誰かが訴えたら、貴方捕まってもおかしくない事をしでかしたのですよ? 今後、ここに限らず、ネットに書き込んだものは、絶対改変しないように願います。
ついでながら、他人の発言を引用する場合、これも他人の著作権を尊重するのであれば、引用部分には「>」を付ける等して、自分の発言とは明確に区別をつけてください。(メールのやり取りで、引用符を使う感じ)
(???) 2017/09/11(月) 09:59
> 八さんの修正アップでは、気にされたのであろう文字列も一部残っていましたが、これも全て「○○○」という文字列に変えてあります。
これも、投稿者に断りもなく変更するのは×だと思うけど?
修正はあくまでも投稿者本人のものだけにしてほしい。 (seiya) 2017/09/11(月) 10:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.