
下記内容について教えて頂きたく書き込みました。
ご回答頂けると幸いです。
日付→ 1日2日3日……
店舗名1〇山本〇
店舗名2佐藤〇〇
.
.
.
.
上記のようなシートで、店舗名が縦に100程ある状態です。
各店舗名横もしくは最終列に、〇が入力されている日付を表示させたいのです。
店舗名1であれば1日・2日…
店舗名2であれば2日・3日…
というように、その店舗の〇が入っている日付だけを判別する方法はないでしょうか?
使用しているのは2010、VBAは初心者ですが多少は扱えます。
現状は目視で数えているんですが、部下の仕事時間をどうにか減らしてあげたく質問させて頂きました。
どうかよろしくお願いします。
No.3ベストアンサー
- 回答日時:
No.2です。
配列数式を言葉で説明しても判りにくいとおもいますので、
↓の画像で説明します。
B5セルに
=B2="○"
という数式を入れ、列・行方向のフィル&コピーすると
「○」のセルは「TRUE」、その他のセルは「FALSE」になります。
次にB8セルに
=B5*COLUMN()
という数式を入れ、列・行方向にフィル&コピー
これで「○」のセルだけに列番号が表示され、その他のセルは「0」となります。
前回の数式
=IFERROR(INDEX(Sheet1!$1:$1,,SMALL(IF(Sheet1!2:2="○",COLUMN(2:2)),COLUMN(A1))),"")
を説明すると
① IFERROR は単にエラー処理で、「○」の数以上列方向にフィル&コピーするとエラー表示になるのでエラーを表示させないため
② INDEX関数で1行目を範囲指定し、その何列目を返すか?という数式です。
③ IF(Sheet1!2:2="○",COLUMN(2:2)) の部分が画像で説明した部分になり
「○」のセルの列番号が取得できます。
④ それをSMALL関数で小さい順に表示させるために
>SMALL(・・・,COLUMN(A1)) ( ←「・・・」の部分が③の数式になります。)
としてTRUEの小さい順に表示しています。
>COLUMN(A1) は数式が入っているセルが 「1」となり、列方向にフィル&コピーするたびに
COLUMN(B1)・COLUMN(C1)・・・と変化しますので
1・2・3・・・となり、これはSMALL関数の何番目か?になります。
※ 別に1行目でなくても COLUMN(A100) でも同じ結果になりますが
面倒なので「1」にしているだけです。
以上のコトを一気に行ったのが前回の配列数式です。
この程度でどうでしょうかね?m(_ _)m

度々のご回答、ありがとうございます。
解説して頂き、すっきりと納得することができました!
SMALLとcolumnを組み合わせてこのような使い方ができるとは目から鱗でした!
本当にご親切にありがとうございます!
No.2
- 回答日時:
こんばんは!
一例です。
↓の画像で説明します。
元データがSheet1にあり、Sheet2に表示させるとします。
Sheet2のB2セルに
=IFERROR(INDEX(Sheet1!$1:$1,,SMALL(IF(Sheet1!2:2="○",COLUMN(2:2)),COLUMN(A1))),"")
配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → B2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り、配列数式になります。
B2セルのフィルハンドルで、列・行方向にコピーすると
画像のような感じになります。m(_ _)m

ご回答ありがとうございます。
まさにイメージしていた通りの結果になり、とても助かりました。
私の説明で意図をご理解頂けた事にも、素晴らしい技術をお伝え頂いた事にも感謝しております。
情けない事ですが、私にはご教示頂いた数式の内容を読み解く事すらできないレベルでした。
厚かましいかとは存じますが、もしお時間があればで構いませんので、なぜこのような結果になるのか、その求め方もご教示頂けると嬉しいです。
今後同じような問題を自分で解決できるように、勉強を重ねていきたいと思います。
No.1
- 回答日時:
入力規則が「日付け数字は二桁+”日”で文字列の末尾」となっていいれば、
right関数で右端3文字を抜き出せば済みます。
更に”日”を削除してvalue評価すれば「大きさ」として認識もできます。
mid関数で、”日”を探してその前の数字を抜き出す方法もありますが、
店舗名に含まれる”日”は区別できず、数字が文字情報であればそれを認識できずに桁数も判断不可。
データー入力はそれを利用編集しやすい様に入力規則を定める事が重要です。
ご質問内容を完全理解できずの想定回答なので、外していたら無視してください。
ご回答ありがとうございます。
お答え頂いた内容は質問の意図とは違ったものの、ご教示頂いた「利用編集しやすいように入力規則を定める」というのはエクセルを扱ううえでとても重要な事だと実感致しました。
早期のご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(社会・学校・職場) 職場で余り者扱いを受けていて辛いです。当方、調剤薬局の事務員5年目です。うちの薬局は複数の店舗を構え 4 2022/11/09 22:10
- 会社・職場 職場で余り者扱いを受けていて辛いです。当方、調剤薬局の事務員5年目です。うちの薬局は複数の店舗を構え 4 2022/11/09 15:49
- アルバイト・パート コインランドリー清掃のバイト(おそらく委託)、 一回、1時間らしいです。1,000円 交通費出ません 5 2022/05/21 07:02
- Amazon Amazonさん 価格の違い...について 4 2022/07/01 21:12
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- 会社・職場 職場で余り者扱いを受けていて辛いです。当方、調剤薬局の事務員5年目の者です。うちの薬局は複数の店舗を 4 2022/11/08 15:13
- 政治 ビッグモーター前の街路樹が除草剤で枯れた問題は、アメリカのように懲罰的罰金を課すべきではないですか? 2 2023/08/21 21:50
- クーポン・割引券 ドラッグストアの割引クーポンについて。 質問から先に。 ドラッグストア複数チエーンのアプリを入れてい 2 2022/12/09 07:35
- Excel(エクセル) excel vba でデータを別のブックへコピペする方法を教えて下さい 2 2022/03/29 20:57
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自分の左隣のセル
-
文字列から英数字のみを抽出す...
-
SUMIF関数で、「ブランク以外を...
-
Excelで特定の数字の間にあるセ...
-
セルを結合した時のエクセル集...
-
excelで、空白を除いてデータを...
-
週の労働時間を計算するエクセル
-
エクセル1行おきのセルを隣の...
-
エクセル 平日と土日祝の時間...
-
EXCELのcountif関数での大文字...
-
Excelでのシリアルナンバー管理...
-
条件付き書式の色付きセルのカ...
-
EXCELでマイナス値の入ったセル...
-
EXCEL-同じ組み合わせになった回数
-
エクセルに入力後、別シートの...
-
エクセルで、A2のセルにA3...
-
エクセル2010 欠席者の名前を...
-
エクセル シート全体の項目をカ...
-
=SUBTOTAL に =COUNTIF の機能...
-
Excel 年齢を年代に変換する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字列から英数字のみを抽出す...
-
自分の左隣のセル
-
SUMIF関数で、「ブランク以外を...
-
excelで、空白を除いてデータを...
-
セルを結合した時のエクセル集...
-
EXCELのcountif関数での大文字...
-
エクセル1行おきのセルを隣の...
-
エクセルで特定のセル内にだけ...
-
エクセルで、指定の値よりも大...
-
エクセルで、A2のセルにA3...
-
同一セル内の重複文字を削除し...
-
週の労働時間を計算するエクセル
-
【Excel】4つとばしで合計する方法
-
条件付き書式の色付きセルのカ...
-
EXCELでマイナス値の入ったセル...
-
エクセルで年月日から月日のみへ
-
エクセルでエンターを押すと任...
-
エラー「#REF」の箇所を置き換...
-
EXCEL-同じ組み合わせになった回数
-
Excelで日付が入っていたら金額...
おすすめ情報